64ce8ecec026ea7f18c93e5657baacc08a96f245
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2011-04-19  Simon Fraser  <simon.fraser@apple.com>
2
3         Reviewed by Dan Bernstein.
4
5         background color of elements with border-radius shows around outer edge of border at corners
6         https://bugs.webkit.org/show_bug.cgi?id=21819
7         
8         When drawing a background followed by a border with the same rounded
9         clip, some border color leaks out because of antialiasing.
10         
11         Fix this by using two different strategies depending on the colors.
12         If the border is opaque on all sides, we can inset the background by
13         a device pixel. If not, then we have to draw the unclipped background
14         and border into a transparency layer, and then clip that.
15         
16         A futher possible solution is mentioned in a comment in
17         determineBackgroundBleedAvoidance() but not yet implemented.
18         
19         Also don't try to paint shadows with zero offset, spread and blur.
20
21         Test: fast/backgrounds/background-leakage.html,
22               fast/backgrounds/background-leakage-transforms.html
23
24         * rendering/RenderBoxModelObject.h:
25         Add a BackgroundBleedAvoidance enum with a value for each
26         strategy.
27         * rendering/RenderBoxModelObject.cpp:
28         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
29         Pass BackgroundBleedAvoidance, bail early if the border rect is empty.
30         If using the transparency layer solution, don't bother to clip
31         to the rounded rect for the background. If the strategy is to
32         shrink the background, do that.
33         (WebCore::BorderEdge::BorderEdge):
34         (WebCore::BorderEdge::obscuresBackgroundEdge):
35         Helper method to determine if this border side will totally
36         obscured by the border edge, allowing us to inset it.
37         (WebCore::RenderBoxModelObject::paintOneBorderSide):
38         Pass BackgroundBleedAvoidance through.
39         (WebCore::RenderBoxModelObject::paintBorderSides):
40         Ditto.
41         (WebCore::RenderBoxModelObject::paintTranslucentBorderSides):
42         Ditto.
43         (WebCore::RenderBoxModelObject::paintBorder):
44         Fill BorderEdges using getBorderEdgeInfo now.
45         Don't clip to the rounded border if we are using the
46         transparency layer solution.
47         (WebCore::RenderBoxModelObject::drawBoxSideFromPath):
48         Pass bleedAvoidance through, and use it for double borders.
49         (WebCore::RenderBoxModelObject::getBorderEdgeInfo):
50         Helper to fill in the BorderEdge array.
51         (WebCore::RenderBoxModelObject::borderObscuresBackgroundEdge):
52         Used to determine if we can use the background shrinkage solution.
53         (WebCore::RenderBoxModelObject::paintBoxShadow):
54         Don't paint shadows that should not be visible.
55
56         * rendering/RenderBox.h:
57         * rendering/RenderBox.cpp:
58         (WebCore::RenderBox::paintRootBoxFillLayers):
59         Pass BackgroundBleedNone for the root box.
60         
61         (WebCore::RenderBox::determineBackgroundBleedAvoidance):
62         Determine which bleed strategy we can use.
63         
64         (WebCore::RenderBox::paintBoxDecorationsWithSize):
65         Based on the bleedAvoidance, make a transparency layer
66         which will be clipped to the rounded border outside edge,
67         and pass bleedAvoidance to the background and border-painting
68         methods.        
69         (WebCore::RenderBox::paintMaskImages):
70         Use BackgroundBleedNone.
71         (WebCore::RenderBox::paintFillLayers):
72         (WebCore::RenderBox::paintFillLayer):
73         Pass bleedAvoidance through.
74
75         * rendering/InlineFlowBox.cpp:
76         (WebCore::InlineFlowBox::paintFillLayer):
77         (WebCore::InlineFlowBox::paintBoxDecorations):
78         Pass BackgroundBleedNone. At some point we may want to do the right
79         thing for split inlines.
80
81         * rendering/RenderFieldset.cpp:
82         (WebCore::RenderFieldset::paintBoxDecorations):
83         * rendering/RenderTableCell.cpp:
84         (WebCore::RenderTableCell::paintBackgroundsBehindCell):
85         Pass BackgroundBleedNone.
86
87 2011-04-19  Yuta Kitamura  <yutak@chromium.org>
88
89         Reviewed by Alexey Proskuryakov.
90
91         WebSocket: Add assertion for SocketStreamError::failingURL.
92         https://bugs.webkit.org/show_bug.cgi?id=58765
93
94         No new tests, because an existing test http/tests/inspector/console-websocket-error.html should cover this.
95
96         * websockets/WebSocketChannel.cpp:
97         (WebCore::WebSocketChannel::didFail): If error.failingURL() is provided, it must be the same as
98         m_handshake.url(). failingURL may be null if SocketStreamHandle has created a SocketStreamError
99         using zero- or one-argument constructor (which is old version but some ports are still using it).
100         In that case, m_handshake.url() is passed to addMessage().
101
102 2011-04-19  Eric Carlson  <eric.carlson@apple.com>
103
104         Reviewed by Dimitri Glazkov.
105
106         Media controls status display should not be hidden for live streams
107         https://bugs.webkit.org/show_bug.cgi?id=58952
108
109         Tested manually because we don't have any live streams to test in DRT.
110
111         * html/shadow/MediaControlElements.cpp:
112         (WebCore::MediaControlStatusDisplayElement::update): Set the status to "Loading" only until
113             there is something to display (readyState exceeds HAVE_METADATA).
114         * html/shadow/MediaControlRootElement.cpp:
115         (WebCore::MediaControlRootElement::loadedMetadata): Don't hide the status display for
116             live streams.
117
118 2011-04-19  Julien Chaffraix  <jchaffraix@codeaurora.org>
119
120         Reviewed by Alexey Proskuryakov.
121
122         https://bugs.webkit.org/show_bug.cgi?id=45425
123         HTMLLinkElement.disabled does not forward value to the Stylesheet's disabled attribute on setting
124
125         Test: fast/html/htmllink-disable.html
126         Test: fast/dom/HTMLLinkElement/disabled-attribute.html
127
128         Match the HTML5 specification by forwarding the 'disabled' attribute to our stylesheet.
129
130         Based on previous work by Bijan Amirzada <bijana@codeaurora.org>.
131
132         * html/HTMLLinkElement.cpp:
133         (WebCore::HTMLLinkElement::disabled): Return our stylesheet's 'disabled' value or
134         false if we don't have a stylesheet.
135         (WebCore::HTMLLinkElement::setDisabled): Set our stylesheet's 'disabled' value or
136         ignore the call if we don't have a stylesheet.
137         * html/HTMLLinkElement.h:
138         * html/HTMLLinkElement.idl: Remove 'Reflect' as it is not a reflected attribute anymore in HTML5.
139         This matches the way FF4, Opera and IE9 handle the attribute.
140
141 2011-04-19  Ryosuke Niwa  <rniwa@webkit.org>
142
143         Reviewed by Eric Seidel.
144
145         Remove calls to deprecatedOffset and deprecatedNode in TypingCommand
146         https://bugs.webkit.org/show_bug.cgi?id=58569
147
148         Removed all calls to deprecatedOffset and deprecatedNode.
149
150         * editing/TypingCommand.cpp:
151         (WebCore::TypingCommand::insertText):
152         (WebCore::TypingCommand::deleteKeyPressed):
153         (WebCore::TypingCommand::forwardDeleteKeyPressed):
154
155 2011-04-19  Adrienne Walker  <enne@google.com>
156
157         Reviewed by Kenneth Russell.
158
159         [chromium] Initialize depth mask to known value before getBooleanv call
160         https://bugs.webkit.org/show_bug.cgi?id=58948
161
162         This trips an assert in the GPU command buffer client code if the
163         pointed-to value is not initialized to 0 or -1.
164
165         * platform/graphics/gpu/DrawingBuffer.cpp:
166         (WebCore::DrawingBuffer::clearFramebuffer):
167
168 2011-04-19  Pratik Solanki  <psolanki@apple.com>
169
170         Reviewed by Simon Fraser.
171
172         BitmapImage::destroyMetadataAndNotify should clear m_checkedForSolidColor
173         https://bugs.webkit.org/show_bug.cgi?id=58926
174
175         * platform/graphics/BitmapImage.cpp:
176         (WebCore::BitmapImage::destroyMetadataAndNotify): Set m_checkedForSolidColor to false.
177         * platform/graphics/BitmapImage.h:
178         (WebCore::BitmapImage::assertNotSolidColor):
179         * platform/graphics/cg/ImageCG.cpp:
180         (WebCore::Image::drawPattern): Add assert to make sure this is not called for a 1x1 image.
181
182 2011-04-19  Ryosuke Niwa  <rniwa@webkit.org>
183
184         Reviewed by Ojan Vafai.
185
186         REGRESSION(r83967): Crash in selectionExtentRespectingEditingBoundary
187         https://bugs.webkit.org/show_bug.cgi?id=58910
188
189         The crash was caused by selectionExtentRespectingEditingBoundary's incorrectly assuming that
190         targetNode always have renderer when there selection has an editable root and the target node
191         is outside of the editable root.
192         
193         Fixed the bug by adding an early exit when the target node is null.
194
195         No new tests are added since we don't have a reduction for this crash.
196
197         * page/EventHandler.cpp:
198         (WebCore::selectionExtentRespectingEditingBoundary):
199
200 2011-04-19  Geoffrey Garen  <ggaren@apple.com>
201
202         Try to fix v8 build.
203
204         * bindings/scripts/CodeGeneratorV8.pm: This is a pretty bad system.
205
206 2011-04-19  Enrica Casucci  <enrica@apple.com>
207
208         Reviewed by Ryosuke Niwa.
209
210         REGRESSION(r55762): Highlight color can't be copied in gmail.
211         https://bugs.webkit.org/show_bug.cgi?id=58925
212         <rdar://problem/9253057>
213
214         Test: editing/pasteboard/copy-text-with-backgroundcolor.html
215
216         The changes of r55762 uncovered the underlying issue here. The markup fragment
217         placed in the pasteboard does not contain the background color style.
218         This occurs only if the selection is limited to a single text node, whereas if the
219         selection spans across multiple nodes, the style is preserved correctly.
220         The fix consists in changing the logic that decides whether we should include the wrapping
221         node in the markup. That logic is based on the code in highestAncestorToWrapMarkup which relies
222         on isElementPresentational to choose candidates to be the wrapping node.
223         I've extended it to accept nodes that have non fully transparent background colors.
224
225         * editing/Editor.cpp:
226         (WebCore::Editor::hasTransparentBackgroundColor): Now is a static method of the class.
227         * editing/Editor.h:
228         * editing/markup.cpp:
229         (WebCore::isElementPresentational): Modified to use hasTransparentBackgroundColor.
230
231 2011-04-19  Geoffrey Garen  <ggaren@apple.com>
232
233         Reviewed by Oliver Hunt.
234
235         Removed a use of markDOMObjectWrapper: NodeLists
236         https://bugs.webkit.org/show_bug.cgi?id=58939
237
238         * bindings/js/JSDocumentCustom.cpp:
239         (WebCore::JSDocument::markChildren): No need to mark node lists, because
240         now they use the opaque roots system to decide their lifetimes.
241
242         * bindings/js/JSNamedNodeMapCustom.cpp: Removed stray newline.
243
244         * bindings/js/JSNodeListCustom.cpp:
245         (WebCore::JSNodeListOwner::isReachableFromOpaqueRoots):
246         (WebCore::JSNodeListOwner::finalize):
247         (WebCore::wrapperOwner):
248         (WebCore::wrapperContext):
249         (WebCore::toJS): Use the opaque roots system to avoid relying on
250         markDOMObjectWrapper.
251
252         * dom/DynamicNodeList.cpp:
253         (WebCore::DynamicNodeList::isDynamicNodeList):
254         * dom/DynamicNodeList.h:
255         (WebCore::DynamicNodeList::rootNode): Added the ability to get the node
256         backing a NodeList, for use in the opaque roots system.
257
258         * dom/Node.cpp:
259         * dom/Node.h:
260         * dom/NodeList.h:
261         (WebCore::NodeList::isDynamicNodeList): Ditto. Removed cruft related
262         to the old way of marking NodeLists.
263
264         * dom/NodeList.idl: We need a custom toJS so we can specify a custom
265         WeakHandleOwner at construction time.
266
267 2011-04-19  Antoine Labour  <piman@chromium.org>
268
269         Reviewed by James Robinson.
270
271         For invisible iframes, propagate compositing to parent instead of setting self
272         as root.
273         https://bugs.webkit.org/show_bug.cgi?id=58414
274
275         Tests: compositing/iframes/invisible-iframe.html
276                compositing/iframes/invisible-nested-iframe-hide.html
277                compositing/iframes/invisible-nested-iframe-show.html
278                compositing/iframes/invisible-nested-iframe.html
279
280         * rendering/RenderLayerCompositor.cpp:
281         (WebCore::RenderLayerCompositor::shouldPropagateCompositingToEnclosingFrame):
282         Propagate compositing to parent even if frame owner has no renderer.
283
284 2011-04-19  Dan Bernstein  <mitz@apple.com>
285
286         Reviewed by Beth Dakin.
287
288         <rdar://problem/9271848> Crash when the document element is removed
289
290         Test: fast/events/overflow-viewport-renderer-deleted.html
291
292         * page/FrameView.cpp:
293         (WebCore::FrameView::calculateScrollbarModesForLayout): Reset m_viewportRenderer, in case this
294         function takes a code path that doesn’t call applyOverflowToViewport().
295         (WebCore::FrameView::layout): Whitespace change.
296
297 2011-04-19  Beth Dakin  <bdakin@apple.com>
298
299         Reviewed by Maciej Stachowiak.
300
301         https://bugs.webkit.org/show_bug.cgi?id=57898
302         REGRESSION (r82185): Scroll position not restored on navigation back to a page in 
303         the page cache
304         -and corresponding-
305         <rdar://problem/9226652>
306
307         Setting the contentsSize of a ScrollView to (0, 0) necessarily causes the scroll 
308         position to be lost. (The scroll position is computed based on the 
309         visibleContentSize.) This patch provides a mechanism to cache the current scroll 
310         position, and then the HistoryController accesses only the cached position rather 
311         than calling scrollPosition() which does a computation based on the 
312         visibleContentSize. 
313
314         * loader/HistoryController.cpp:
315         (WebCore::HistoryController::saveScrollPositionAndViewStateToItem):
316         * page/FrameView.cpp:
317         (WebCore::FrameView::resetScrollbarsAndClearContentsSize):
318         * platform/ScrollView.h:
319         (WebCore::ScrollView::cacheCurrentScrollPosition):
320         (WebCore::ScrollView::cachedScrollPosition):
321
322 2011-04-19  Renata Hodovan  <reni@webkit.org>
323
324         Reviewed by Eric Seidel.
325
326         Move the alignment related macros in Vector.h to new Alignment.h.
327         https://bugs.webkit.org/show_bug.cgi?id=56000
328
329         Adding the new file to the forwarding headers of WebCore.
330
331         * ForwardingHeaders/wtf/Alignment.h: Added.
332
333 2011-04-19  Oliver Hunt  <oliver@apple.com>
334
335         Reviewed by Andreas Kling.
336
337         [Qt] QtInstance method cache ownership rules are unclear
338         https://bugs.webkit.org/show_bug.cgi?id=58820
339
340         Make the QtInstance method cache use WriteBarrier, and handle
341         ownership properly.
342
343         * bridge/qt/qt_class.cpp:
344         (JSC::Bindings::QtClass::fallbackObject):
345         (JSC::Bindings::QtClass::fieldNamed):
346         * bridge/qt/qt_instance.cpp:
347         (JSC::Bindings::QtInstance::~QtInstance):
348         (JSC::Bindings::QtInstance::removeCachedMethod):
349         (JSC::Bindings::QtInstance::newRuntimeObject):
350         (JSC::Bindings::QtInstance::markAggregate):
351         * bridge/qt/qt_instance.h:
352
353 2011-04-19  David Kilzer  <ddkilzer@apple.com>
354
355         <http://webkit.org/b/57867> Re-order enum ResourceLoadPriority to make Unresolved value less important
356
357         Reviewed by Antti Koivisto.
358
359         * platform/network/ResourceLoadPriority.h:
360         (enum ResourceLoadPriority): Moved Unresolved enum to the top of
361         the list and set to -1 to emphasize the fact that this is an
362         unresolved priority (rather than one higher than the highest
363         priority).  Removed whitespace from the end of all enum lines.
364
365 2011-04-19  Simon Fraser  <simon.fraser@apple.com>
366
367         Reviewed by David Hyatt.
368
369         Background radius is wrong for split inline
370         https://bugs.webkit.org/show_bug.cgi?id=58843
371         
372         When computing the radii for a segment of a split inline, we have to
373         constrain those radii for the current segment, while still drawing
374         using the entire logical width.
375
376         Tests: fast/backgrounds/border-radius-split-background-image.html
377                fast/backgrounds/border-radius-split-background.html
378
379         * rendering/InlineFlowBox.cpp:
380         (WebCore::InlineFlowBox::paintFillLayer):
381         Pass height and width for this box only to paintFillLayer()
382         
383         * rendering/RenderBox.cpp:
384         (WebCore::RenderBox::paintFillLayer):
385         Pass 0 for unused inlineBox height and width.
386
387         * rendering/RenderBoxModelObject.h:
388         * rendering/RenderBoxModelObject.cpp:
389         (WebCore::RenderBoxModelObject::getBackgroundRoundedRect):
390         When computing the rounded background rect, we have to take the size of
391         this segment of the inline box into account for radius constraining.
392         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
393         Call getBackgroundRoundedRect() in two places.
394
395 2011-04-19  Simon Fraser  <simon.fraser@apple.com>
396
397         Build fix. For some reason RenderBoxModelObject.cpp
398         was missing from my last commit.
399
400         * rendering/RenderBoxModelObject.cpp:
401         (WebCore::borderWillArcInnerEdge):
402         (WebCore::edgeFlagForSide):
403         (WebCore::includesEdge):
404         (WebCore::BorderEdge::BorderEdge):
405         (WebCore::BorderEdge::hasVisibleColorAndStyle):
406         (WebCore::BorderEdge::shouldRender):
407         (WebCore::BorderEdge::presentButInvisible):
408         (WebCore::BorderEdge::usedWidth):
409         (WebCore::BorderEdge::getDoubleBorderStripeWidths):
410         (WebCore::edgesShareColor):
411         (WebCore::styleRequiresClipPolygon):
412         (WebCore::borderStyleFillsBorderArea):
413         (WebCore::borderStyleHasInnerDetail):
414         (WebCore::borderStyleIsDottedOrDashed):
415         (WebCore::borderStyleHasUnmatchedColorsAtCorner):
416         (WebCore::colorsMatchAtCorner):
417         (WebCore::willBeOverdrawn):
418         (WebCore::borderStylesRequireMitre):
419         (WebCore::joinRequiresMitre):
420         (WebCore::RenderBoxModelObject::paintOneBorderSide):
421         (WebCore::RenderBoxModelObject::paintBorderSides):
422         (WebCore::RenderBoxModelObject::paintTranslucentBorderSides):
423         (WebCore::RenderBoxModelObject::paintBorder):
424         (WebCore::RenderBoxModelObject::drawBoxSideFromPath):
425         (WebCore::findInnerVertex):
426         (WebCore::RenderBoxModelObject::clipBorderSidePolygon):
427         (WebCore::RenderBoxModelObject::paintBoxShadow):
428
429 2011-04-19  Stephen White  <senorblanco@chromium.org>
430
431         Reviewed by Kenneth Russell.
432
433         Refactor GLES2Canvas state application out into its own function.
434         https://bugs.webkit.org/show_bug.cgi?id=58906
435
436         Covered by existing tests in fast/canvas and canvas/philip.
437
438         * platform/graphics/chromium/GLES2Canvas.cpp:
439         (WebCore::GLES2Canvas::applyState):
440         New function to apply compositing and clipping state.
441         (WebCore::GLES2Canvas::fillPath):
442         (WebCore::GLES2Canvas::fillRect):
443         (WebCore::GLES2Canvas::beginShadowDraw):
444         (WebCore::GLES2Canvas::endShadowDraw):
445         Refactor calls to applyState().
446         * platform/graphics/chromium/GLES2Canvas.h:
447
448 2011-04-19  Simon Fraser  <simon.fraser@apple.com>
449
450         Reviewed by Dave Hyatt.
451
452         Fix multiple border rendering issues
453         https://bugs.webkit.org/show_bug.cgi?id=58761
454         
455         Fix various border-drawing bugs, and optimize some common cases.
456         Also refactors a lot of the border-drawing code to be more maintainable.
457         
458             Rounded border rendering with different border widths looks strange
459             https://bugs.webkit.org/show_bug.cgi?id=17468
460             
461             paintBorder in RenderObject paint two times the corners
462             https://bugs.webkit.org/show_bug.cgi?id=20495
463             
464             Overdraw at box corners when using RGBA colors with alpha
465             https://bugs.webkit.org/show_bug.cgi?id=21835
466             
467             Enable antialiasing for border drawing, when transformed
468             https://bugs.webkit.org/show_bug.cgi?id=22746
469             
470             Drawing border-radius from path sometimes fails to round outer border in the double style when it should
471             https://bugs.webkit.org/show_bug.cgi?id=41301
472             
473             Drawing border-radius from path doesn't appear to always match up border edges correctly
474             https://bugs.webkit.org/show_bug.cgi?id=41302
475             
476         Also fixes
477             Should be able to create Path from RoundedIntRect
478             https://bugs.webkit.org/show_bug.cgi?id=58809
479
480         Tests: fast/borders/border-radius-different-width-001.html
481                fast/borders/border-radius-inset-outset.html
482                fast/borders/table-borders.html
483
484         * platform/graphics/FloatPoint.h:
485         * platform/graphics/FloatPoint.cpp:
486         (WebCore::findSlope):
487         (WebCore::findIntersection):
488         New geometry helper functions (should eventually move into a new
489         GeometryUtilities file).
490         
491         * platform/graphics/Path.h:
492         * platform/graphics/Path.cpp:
493         (WebCore::Path::addRoundedRect):
494         Add an overload of addRoundedRect() that takes a RoundedIntRect.
495
496         * platform/graphics/GraphicsContext.cpp:
497         (WebCore::GraphicsContext::addRoundedRectClip):
498         (WebCore::GraphicsContext::clipOutRoundedRect):
499         (WebCore::GraphicsContext::fillRectWithRoundedHole):
500         Can now add a RoundedIntRect to a Path directly.
501         
502         * platform/graphics/IntRect.h:
503         (WebCore::IntRect::minXMinYCorner):
504         (WebCore::IntRect::maxXMinYCorner):
505         (WebCore::IntRect::minXMaxYCorner):
506         (WebCore::IntRect::maxXMaxYCorner):
507         Convenience functions to get the rect corners, in a writing-mode-
508         friendly way.
509
510         * platform/graphics/RoundedIntRect.h:
511         * platform/graphics/RoundedIntRect.cpp:
512         (WebCore::RoundedIntRect::isRenderable):
513         We need to know when Path::addRoundedRect() will fail because
514         the sum of the radii exceed the height or width. This method tells
515         us that.
516         
517         * platform/graphics/cg/GraphicsContextCG.cpp:
518         (WebCore::GraphicsContext::fillRectWithRoundedHole):
519         Can now add a RoundedIntRect to a Path directly.
520
521         * rendering/RenderBoxModelObject.h:
522         * rendering/RenderBoxModelObject.cpp:
523         (WebCore::borderWillArcInnerEdge):
524         This can just to see if there are inner radii now.
525         
526         (WebCore::edgeFlagForSide):
527         (WebCore::includesEdge):
528         Convenience functions for the BorderEdgeFlags bitmask.
529         
530         (WebCore::BorderEdge::BorderEdge):
531         (WebCore::BorderEdge::hasVisibleColorAndStyle):
532         (WebCore::BorderEdge::shouldRender):
533         (WebCore::BorderEdge::presentButInvisible):
534         (WebCore::BorderEdge::usedWidth):
535         (WebCore::BorderEdge::getDoubleBorderStripeWidths):
536         Convenience class to hold data about how a single edge
537         is drawn, and to contain some commonly used width-related methods.
538         
539         (WebCore::edgesShareColor):
540         (WebCore::styleRequiresClipPolygon):
541         (WebCore::borderStyleFillsBorderArea):
542         (WebCore::borderStyleHasInnerDetail):
543         (WebCore::borderStyleIsDottedOrDashed):
544         (WebCore::borderStyleHasUnmatchedColorsAtCorner):
545         (WebCore::colorsMatchAtCorner):
546         (WebCore::willBeOverdrawn):
547         (WebCore::borderStylesRequireMitre):
548         (WebCore::joinRequiresMitre):
549         Functions used to make the border drawing code more readable,
550         which are used to determine when corners need a mitre, and
551         need antialiasing.
552         
553         (WebCore::RenderBoxModelObject::paintOneBorderSide):
554         Code to paint one side of a border, either via the path, or
555         using rects/polygons, the appropriate mitres and antialiasing
556         at the corners. includeLogicalLeftEdge and includeLogicalRightEdge need
557         to be passed all the way down here so that when we recompute the
558         path for double and ridge/groove borders, we correctly handle split box
559         borders.
560         
561         (WebCore::RenderBoxModelObject::paintBorderSides):
562         Paints the 4 border sides (if present).
563         
564         (WebCore::RenderBoxModelObject::paintTranslucentBorderSides):
565         Called when one or more of the borders has a non-opaque color,
566         and uses a transparency layer for each set of same-colored
567         sides to avoid overdraw at the corners.
568         
569         (WebCore::RenderBoxModelObject::paintBorder):
570         Builds an array of BorderEdge so we can iterate over them to 
571         detect different border compbinations, and optimizations. Has
572         a fast path for all-solid borders.
573         
574         (WebCore::RenderBoxModelObject::drawBoxSideFromPath):
575         Moved from RenderObject, since all callers are in RenderBoxModelObject.
576         Has the following changes:
577           * Don't attempt to draw dashes if there is only space for a few,
578             since it looks bad.
579           * Handle double and groove borders on split inlines correctly,
580             making use of includeLogicalLeftEdge, includeLogicalRightEdge
581
582         (WebCore::findInnerVertex):
583         For borders with a radiused inner edge, the per-side clip polygon
584         has to project inside the padding box to avoid clipping the inner edge.
585         This function computes a reasonable inner corner for the clipping
586         polygon.
587         (WebCore::RenderBoxModelObject::clipBorderSidePolygon):
588         Have the corner joins pass through the corners of the inner and outer
589         border rectangles, ensure we don't clip the inside if necessary,
590         and handle antialiasing on the two mitres.
591         
592         (WebCore::RenderBoxModelObject::paintBoxShadow):
593         Use RenderStyle::getRoundedInnerBorderFor() rather than computeBorderInnerRect()
594         etc.
595
596         * rendering/RenderObject.h:
597         * rendering/RenderObject.cpp:
598         (WebCore::RenderObject::drawLineForBoxSide):
599         Moved to RenderBoxModelObject.
600         
601         * rendering/style/RenderStyle.h:
602         * rendering/style/RenderStyle.cpp:
603         (WebCore::RenderStyle::getRoundedBorderFor):
604         (WebCore::RenderStyle::getRoundedInnerBorderFor):
605         There was some very clumsy code that computed a rounded rect
606         given the border rect and side widths. Cleaned this up by moving
607         some code into RenderStyle. The overloaded getRoundedInnerBorderFor()
608         which takes the border widths is used by the double and groove drawing
609         code.
610
611 2011-04-19  Ryosuke Niwa  <rniwa@webkit.org>
612
613         Reviewed by Dimitri Glazkov.
614
615         REGRESSION(r74228-75294): removing nodes is 200+ times slower when selection is inside a shadow DOM
616         https://bugs.webkit.org/show_bug.cgi?id=57061
617
618         The bug was caused by Range::compareNode's incorrectly returning NODE_INSIDE when the selection is inside
619         a shadow DOM and the node is outside of the shadow DOM. This caused respondToNodeModification to call
620         RenderView::clearSelection every time a node is removed when selection is in a shadow DOM and resulted in
621         a significant performance regression.
622
623         Fixed Ranged::compareNode by making Range::compareBoundaryPoints throw a WRONG_DOCUMENT_ERR when there are
624         no common ancestors between containerA and containerB. This will force compareNode to also throw an exception
625         and prevents respondToNodeModification from clearing selection.
626
627         No new tests because this is a performance improvement and the fix in Range cannot be tested since shadow DOM
628         isn't exposed to JavaScript.
629
630         * dom/Range.cpp:
631         (WebCore::Range::setStart): Calls compareBoundaryPoints; since we ensures that the root container noes of
632         start and end nodes are same, we should never get an exception from compareBoundaryPoints.
633         (WebCore::Range::setEnd): Ditto.
634         (WebCore::Range::isPointInRange): Calls compareBoundaryPoints; returns false when compareBoundaryPoints
635         throws an exception.
636         (WebCore::Range::comparePoint): Calls compareBoundaryPoints; exit early when an exception is thrown by
637         compareBoundaryPoints.
638         (WebCore::Range::compareBoundaryPoints): Throws an exception when two containers do not have a common ancestor.
639         (WebCore::Range::boundaryPointsValid): Calls compareBoundaryPoints and checks that it didn't throw an exception.
640         * dom/Range.h:
641         * editing/SelectionController.cpp:
642         (WebCore::SelectionController::respondToNodeModification):
643         * editing/htmlediting.cpp:
644         (WebCore::comparePositions): Calls compareBoundaryPoints.
645         * editing/markup.cpp:
646         (WebCore::createMarkup): Calls compareBoundaryPoints; since startNode and pastEnd are both in the same document
647         and neither are in a shadow DOM, it should never throw an exception.
648         * page/DOMSelection.cpp:
649         (WebCore::DOMSelection::containsNode): Calls compareBoundaryPoints; node is fully selected only if no exception
650         was thrown.
651
652 2011-04-19  Jungshik Shin  <jshin@chromium.org>
653
654         Reviewed by David Levin
655
656         Make U+FEFF be treated as a zero-width character in both
657         simple script and complex script code paths. In Chromium
658         Windows, UniscribeHelper needs a rather extensive changes
659         summarized below.  Other ports need minor changes.
660
661         https://bugs.webkit.org/show_bug.cgi?id=48860
662
663         Test: fast/text/zero-width-characters-complex-script.html
664
665         * platform/graphics/Font.h:
666         (WebCore::Font::treatAsZeroWidthSpace): U+FEFF is added to the list
667         (WebCore::Font::treatAsZeroWidthSpaceInComplexScript): Added. Same as the above except that ZWNJ and ZWJ are excluded.
668         * platform/graphics/GlyphPageTreeNode.cpp:
669         (WebCore::GlyphPageTreeNode::initializePage): U+FEFF is made to have zero-width characters in simple script (fast) code path.
670         * platform/graphics/chromium/FontUtilsChromiumWin.cpp:
671         (WebCore::FontMap::getSpaceGlyph): Added to get the gid for space glyph to use in adjustSpaceAdvance when zero-width glyph character has a non-zero width and potentially 'visible' glyph.
672         (WebCore::FontMap::FontData::FontData): spaceGlyph member added.
673         (WebCore::getDerivedFontData): spaceGlyph is retrieved as well.
674         * platform/graphics/chromium/FontUtilsChromiumWin.h:
675         * platform/graphics/chromium/UniscribeHelper.cpp:
676         (WebCore::UniscribeHelper::UniscribeHelper): m_spaceGlyph added.
677         (WebCore::UniscribeHelper::shape): spaceGlyph is obtained stored for a font tried for each item.
678         (WebCore::UniscribeHelper::adjustSpaceAdvances): For zero-width complex script characters, set the advance width to zero and replace a non-zero-width/visible glyph with a space glyph.
679         (WebCore::UniscribeHelper::applySpacing):
680         (WebCore::UniscribeHelper::containsMissingGlyphs): turned to a member function because it cannot work on glyphs alone any more but need to take into account a character corresponding to a glyph
681         * platform/graphics/chromium/UniscribeHelper.h: 
682         (WebCore::UniscribeHelper::Shaping::Shaping): m_spaceGlyph is added
683         * platform/graphics/chromium/UniscribeHelperTextRun.cpp:
684         (WebCore::UniscribeHelperTextRun::UniscribeHelperTextRun): When calling UniscriberHelper, add a new argument for spaceGlyph.
685
686 2011-04-19  Brent Fulgham  <bfulgham@webkit.org>
687
688         Reviewed by Adam Roben.
689
690         Extend the DIBPixelData class with the facility for writing the
691         bitmap representation to disk for debugging purposes.
692         https://bugs.webkit.org/show_bug.cgi?id=58862.
693
694         * platform/graphics/win/DIBPixelData.cpp:
695         (WebCore::DIBPixelData::writeToFile): New function.
696         * platform/graphics/win/DIBPixelData.h:
697
698 2011-04-19  Vsevolod Vlasov  <vsevik@chromium.org>
699
700         Reviewed by Pavel Feldman.
701
702         Web Inspector: Rename lengthReceived to encodedDataLength/dataLength
703         https://bugs.webkit.org/show_bug.cgi?id=58883
704
705         * fileapi/FileReaderLoader.cpp:
706         (WebCore::FileReaderLoader::didReceiveData):
707         * inspector/InspectorInstrumentation.cpp:
708         (WebCore::InspectorInstrumentation::didReceiveContentLengthImpl):
709         * inspector/InspectorInstrumentation.h:
710         (WebCore::InspectorInstrumentation::didReceiveContentLength):
711         * inspector/InspectorResourceAgent.cpp:
712         (WebCore::InspectorResourceAgent::didReceiveContentLength):
713         * inspector/InspectorResourceAgent.h:
714         * inspector/front-end/NetworkManager.js:
715         (WebInspector.NetworkDispatcher.prototype.dataReceived):
716         * loader/DocumentThreadableLoader.cpp:
717         (WebCore::DocumentThreadableLoader::didReceiveData):
718         (WebCore::DocumentThreadableLoader::didReceiveCachedMetadata):
719         * loader/DocumentThreadableLoader.h:
720         * loader/FrameLoaderClient.h:
721         * loader/MainResourceLoader.cpp:
722         (WebCore::MainResourceLoader::didReceiveData):
723         * loader/MainResourceLoader.h:
724         * loader/NetscapePlugInStreamLoader.cpp:
725         (WebCore::NetscapePlugInStreamLoader::didReceiveData):
726         * loader/NetscapePlugInStreamLoader.h:
727         * loader/ResourceLoadNotifier.cpp:
728         (WebCore::ResourceLoadNotifier::didReceiveData):
729         (WebCore::ResourceLoadNotifier::dispatchDidReceiveContentLength):
730         (WebCore::ResourceLoadNotifier::sendRemainingDelegateMessages):
731         * loader/ResourceLoadNotifier.h:
732         * loader/ResourceLoader.cpp:
733         (WebCore::ResourceLoader::didReceiveData):
734         * loader/ResourceLoader.h:
735         * loader/SubresourceLoader.cpp:
736         (WebCore::SubresourceLoader::didReceiveData):
737         * loader/SubresourceLoader.h:
738         * loader/SubresourceLoaderClient.h:
739         (WebCore::SubresourceLoaderClient::didReceiveData):
740         (WebCore::SubresourceLoaderClient::didReceiveCachedMetadata):
741         * loader/WorkerThreadableLoader.cpp:
742         (WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveData):
743         (WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveCachedMetadata):
744         * loader/appcache/ApplicationCacheGroup.cpp:
745         (WebCore::ApplicationCacheGroup::didReceiveData):
746         * loader/appcache/ApplicationCacheGroup.h:
747         * loader/appcache/ApplicationCacheHost.h:
748         * notifications/Notification.cpp:
749         (WebCore::Notification::didReceiveData):
750         * notifications/Notification.h:
751         * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
752         (StreamingClient::didReceiveData):
753         * platform/network/BlobResourceHandle.cpp:
754         * platform/network/ResourceHandleClient.h:
755         (WebCore::ResourceHandleClient::didReceiveData):
756         * platform/network/android/ResourceHandleAndroid.cpp:
757         (WebCore::SyncLoader::didReceiveData):
758         * platform/network/cf/ResourceHandleCFNet.cpp:
759         (WebCore::WebCoreSynchronousLoaderClient::didReceiveData):
760         * platform/network/curl/ResourceHandleCurl.cpp:
761         * platform/network/mac/ResourceHandleMac.mm:
762         (WebCoreSynchronousLoaderClient::didReceiveData):
763         * platform/network/soup/ResourceHandleSoup.cpp:
764         * platform/network/win/ResourceHandleWin.cpp:
765         * workers/WorkerScriptLoader.h:
766         * xml/XMLHttpRequest.h:
767
768 2011-04-19  Stephen White  <senorblanco@chromium.org>
769
770         Reviewed by Eric Seidel.
771
772         Pull framebuffer clearing out into its own function.
773         https://bugs.webkit.org/show_bug.cgi?id=58897
774
775         Covered by fast/canvas and canvas/philip tests.
776
777         * platform/graphics/gpu/DrawingBuffer.cpp:
778         (WebCore::DrawingBuffer::clearFramebuffer):
779         (WebCore::DrawingBuffer::reset):
780         * platform/graphics/gpu/DrawingBuffer.h:
781
782 2011-04-19 Brian Salomon <bsalomon@google.com>
783
784         Reviewed by Eric Seidel.
785
786         When flushing GrContext in ~PlatformContextSkia be sure correct GL context is set
787         https://bugs.webkit.org/show_bug.cgi?id=58788
788
789         Chromium browser test will be added that loads canvas page and then an 
790         acclerated-composited page. Test must trigger ~PlatformContextSkia() 
791         followed by invocation of GL compositor.
792
793         * platform/graphics/skia/PlatformContextSkia.cpp:
794         (WebCore::PlatformContextSkia::~PlatformContextSkia):
795
796 2011-04-19  Csaba Osztrogonác  <ossy@webkit.org>
797
798         [Qt] REGRESSION(84176): http/tests/xmlhttprequest/event-listener-gc.html fails
799         https://bugs.webkit.org/show_bug.cgi?id=58871
800
801         Unreviewed, rolling out r84176, r84178, r84186, r84212 and r84231.
802         http://trac.webkit.org/changeset/84176 (original patch)
803         http://trac.webkit.org/changeset/84178 (original patch - part 2)
804         http://trac.webkit.org/changeset/84186 (build fix)
805         http://trac.webkit.org/changeset/84212
806         http://trac.webkit.org/changeset/84231 (skip failing test)
807
808         original bugs:
809          - https://bugs.webkit.org/show_bug.cgi?id=58718
810          - https://bugs.webkit.org/show_bug.cgi?id=58853
811
812         * bridge/qt/qt_class.cpp:
813         (JSC::Bindings::QtClass::fallbackObject):
814         * bridge/qt/qt_instance.cpp:
815         (JSC::Bindings::QtInstance::removeCachedMethod):
816         (JSC::Bindings::QtInstance::markAggregate):
817         * bridge/qt/qt_instance.h:
818
819 2011-04-19  Sheriff Bot  <webkit.review.bot@gmail.com>
820
821         Unreviewed, rolling out r84050.
822         http://trac.webkit.org/changeset/84050
823         https://bugs.webkit.org/show_bug.cgi?id=58892
824
825         fast/dom/HTMLKeygenElement/keygen.html is crashing on Chromium
826         (Requested by jknotten on #webkit).
827
828         * dom/ContainerNode.cpp:
829         (WebCore::ContainerNode::takeAllChildrenFrom):
830         (WebCore::ContainerNode::removeBetween):
831         (WebCore::ContainerNode::removeChildren):
832         (WebCore::ContainerNode::parserAddChild):
833         * dom/Document.cpp:
834         (WebCore::Document::Document):
835         (WebCore::Document::~Document):
836         (WebCore::Document::setDocType):
837         * dom/Element.h:
838         * dom/Node.cpp:
839         (WebCore::Node::treeScope):
840         (WebCore::Node::setTreeScope):
841         (WebCore::Node::setTreeScopeRecursively):
842         * dom/Node.h:
843         (WebCore::Node::document):
844         * dom/ShadowRoot.cpp:
845         (WebCore::ShadowRoot::ShadowRoot):
846         * dom/ShadowRoot.h:
847         * dom/TreeScope.cpp:
848         (WebCore::TreeScope::TreeScope):
849         (WebCore::TreeScope::setParentTreeScope):
850         * dom/TreeScope.h:
851         * rendering/RenderSlider.cpp:
852
853 2011-04-19  Kinuko Yasuda  <kinuko@chromium.org>
854
855         Not reviewed; windows build fix attempt.
856
857         * storage/StorageInfo.cpp:
858         (WebCore::StorageInfo::~StorageInfo):
859         * storage/StorageInfo.h:
860
861 2011-04-19  Kinuko Yasuda  <kinuko@chromium.org>
862
863         Reviewed by David Levin.
864
865         [Chromium] Enable QUOTA API at runtime if enable-quota flag is given
866         https://bugs.webkit.org/show_bug.cgi?id=58784
867
868         No new tests as this does not change any functionality.
869
870         * bindings/generic/RuntimeEnabledFeatures.cpp:
871         * bindings/generic/RuntimeEnabledFeatures.h:
872         (WebCore::RuntimeEnabledFeatures::quotaEnabled):
873         (WebCore::RuntimeEnabledFeatures::setQuotaEnabled):
874         * page/DOMWindow.idl:
875
876 2011-04-19  John Gregg  <johnnyg@google.com>
877
878         Reviewed by Darin Fisher.
879
880         Enable folder drag-n-drop when using a "webkitdirectory" file input
881         https://bugs.webkit.org/show_bug.cgi?id=58401
882
883         This uses a new ChromeClient API to enumerate the directory and 
884         return all the files, as if the user had selected that directory
885         by clicking the control in the normal way.
886
887         * loader/EmptyClients.h:
888         (WebCore::EmptyChromeClient::enumerateChosenDirectory):
889         * page/Chrome.cpp:
890         (WebCore::Chrome::enumerateChosenDirectory):
891         * page/Chrome.h:
892         * page/ChromeClient.h:
893         * platform/network/FormData.cpp:
894         (WebCore::FormData::appendKeyValuePairItems):
895         * rendering/RenderFileUploadControl.cpp:
896         (WebCore::RenderFileUploadControl::receiveDropForDirectoryUpload):
897         (WebCore::RenderFileUploadControl::receiveDroppedFiles):
898         * rendering/RenderFileUploadControl.h:
899
900 2011-04-19  Sheriff Bot  <webkit.review.bot@gmail.com>
901
902         Unreviewed, rolling out r84150.
903         http://trac.webkit.org/changeset/84150
904         https://bugs.webkit.org/show_bug.cgi?id=58875
905
906         Broken backspace in Search box of Web Inspector (Requested by
907         apavlov on #webkit).
908
909         * inspector/front-end/inspector.js:
910         (WebInspector.documentKeyDown):
911
912 2011-04-19  Andrey Adaikin  <aandrey@google.com>
913
914         Reviewed by Pavel Feldman.
915
916         Web Inspector: NPE in TextEditorModel
917         https://bugs.webkit.org/show_bug.cgi?id=58870
918
919         * inspector/front-end/ResourcesPanel.js:
920         (WebInspector.ResourcesPanel.prototype._frameAdded):
921         * inspector/front-end/TextEditorModel.js:
922         (WebInspector.TextEditorModel.prototype.setText):
923
924 2011-04-19  Hans Wennborg  <hans@chromium.org>
925
926         Reviewed by Tony Gentilcore.
927
928         IndexedDB: Remove accidental header include directive from LevelDB backend.
929         https://bugs.webkit.org/show_bug.cgi?id=58872
930
931         No new functionality, no new tests.
932
933         * storage/IDBLevelDBBackingStore.cpp:
934
935 2011-04-19  Herczeg Zoltan  <zherczeg@webkit.org>
936
937         Build fix.
938
939         LEFilter change doesn't compile on ARM neon targets
940         https://bugs.webkit.org/show_bug.cgi?id=58671
941
942         Thanks for Charlie Lee to fixing this.
943
944         * WebCore.gypi:
945
946 2011-04-19  Daniel Bates  <dbates@webkit.org>
947
948         Attempt to fix the Qt Linux Release Minimal build after changeset 84225
949         <http://trac.webkit.org/changeset/84225> (https://bugs.webkit.org/show_bug.cgi?id=52788).
950
951         * dom/EventDispatcher.cpp:
952         (WebCore::EventDispatcher::ensureEventAncestors): Add ENABLE(SVG) guards around call
953         to Node::svgShadowHost() since this method is only defined when building with SVG enabled.
954
955 2011-04-18  Dominic Cooney  <dominicc@chromium.org>
956
957         Reviewed by Dimitri Glazkov.
958
959         Makes SVG shadow roots and DOM shadow roots distinct.
960         https://bugs.webkit.org/show_bug.cgi?id=52788
961
962         Not a functional change. Covered by existing SVG tests.
963
964         * dom/EventDispatcher.cpp:
965         (WebCore::findElementInstance):
966         (WebCore::EventDispatcher::adjustToShadowBoundaries):
967         (WebCore::EventDispatcher::adjustRelatedTarget):
968         (WebCore::EventDispatcher::ensureEventAncestors):
969         * dom/Node.cpp:
970         (WebCore::Node::setShadowHost):
971         (WebCore::Node::svgShadowHost):
972         (WebCore::Node::shadowTreeRootNode):
973         * dom/Node.h:
974         (WebCore::Node::isSVGShadowRoot):
975         (WebCore::Node::parentNode):
976         (WebCore::Node::parentNodeGuaranteedHostFree):
977         * rendering/svg/RenderSVGShadowTreeRootContainer.cpp:
978         (WebCore::RenderSVGShadowTreeRootContainer::~RenderSVGShadowTreeRootContainer):
979         (WebCore::RenderSVGShadowTreeRootContainer::updateFromElement):
980         * rendering/svg/SVGShadowTreeElements.cpp:
981         (WebCore::SVGShadowTreeRootElement::SVGShadowTreeRootElement):
982         (WebCore::SVGShadowTreeRootElement::create):
983         (WebCore::SVGShadowTreeRootElement::attachElement):
984         (WebCore::SVGShadowTreeRootElement::clearSVGShadowHost):
985         * rendering/svg/SVGShadowTreeElements.h:
986         (WebCore::SVGShadowTreeRootElement::isSVGShadowRoot):
987         * svg/SVGStyledElement.cpp:
988         (WebCore::SVGStyledElement::title):
989
990 2011-04-18  Taiju TSUIKI  <develop@tzik.jp>
991
992         Reviewed by Darin Fisher.
993
994         Vendor-prefix requestFileSystem in FileSystem API
995         https://bugs.webkit.org/show_bug.cgi?id=58517
996
997         Prefix from:
998         - window.requestFileSystem to window.webkitRequestFileSystem
999         - window.resolveLocalFileSystemURL to window.webkitResolveLocalFileSystemURL
1000         - window.Flags to window.WebKitFlags
1001         - WorkerContext.requestFileSystem to WorkerContext.webkitRequestFileSystem
1002         - WorkerContext.resolveLocalFileSystemURL to WorkerContext.webkitResolveLocalFileSystemURL
1003         - WorkerContext.Flags to WorkerContext.WebKitFlags
1004
1005         * CMakeLists.txt:
1006         * CodeGenerators.pri:
1007         * DerivedSources.cpp:
1008         * DerivedSources.make:
1009         * GNUmakefile.list.am:
1010         * WebCore.gypi:
1011         * WebCore.pro:
1012         * WebCore.vcproj/WebCore.vcproj:
1013         * WebCore.xcodeproj/project.pbxproj:
1014         * bindings/js/JSDirectoryEntryCustom.cpp:
1015         (WebCore::JSDirectoryEntry::getFile):
1016         (WebCore::JSDirectoryEntry::getDirectory):
1017         * bindings/js/JSDirectoryEntrySyncCustom.cpp:
1018         (WebCore::getFlags):
1019         (WebCore::JSDirectoryEntrySync::getFile):
1020         (WebCore::JSDirectoryEntrySync::getDirectory):
1021         * bindings/v8/custom/V8DirectoryEntryCustom.cpp:
1022         (WebCore::V8DirectoryEntry::getDirectoryCallback):
1023         (WebCore::V8DirectoryEntry::getFileCallback):
1024         * bindings/v8/custom/V8DirectoryEntrySyncCustom.cpp:
1025         (WebCore::getFlags):
1026         (WebCore::V8DirectoryEntrySync::getDirectoryCallback):
1027         (WebCore::V8DirectoryEntrySync::getFileCallback):
1028         * fileapi/DOMFileSystemBase.cpp:
1029         (WebCore::DOMFileSystemBase::getFile):
1030         (WebCore::DOMFileSystemBase::getDirectory):
1031         * fileapi/DOMFileSystemBase.h:
1032         * fileapi/DirectoryEntry.cpp:
1033         (WebCore::DirectoryEntry::getFile):
1034         (WebCore::DirectoryEntry::getDirectory):
1035         * fileapi/DirectoryEntry.h:
1036         * fileapi/DirectoryEntry.idl:
1037         * fileapi/DirectoryEntrySync.cpp:
1038         (WebCore::DirectoryEntrySync::getFile):
1039         (WebCore::DirectoryEntrySync::getDirectory):
1040         * fileapi/DirectoryEntrySync.h:
1041         * fileapi/DirectoryEntrySync.idl:
1042         * fileapi/WebKitFlags.h: Renamed from Source/WebCore/fileapi/Flags.h.
1043         (WebCore::WebKitFlags::create):
1044         (WebCore::WebKitFlags::isCreate):
1045         (WebCore::WebKitFlags::setCreate):
1046         (WebCore::WebKitFlags::isExclusive):
1047         (WebCore::WebKitFlags::setExclusive):
1048         (WebCore::WebKitFlags::WebKitFlags):
1049         * fileapi/WebKitFlags.idl: Renamed from Source/WebCore/fileapi/Flags.idl.
1050         * page/DOMWindow.cpp:
1051         (WebCore::DOMWindow::webkitRequestFileSystem):
1052         (WebCore::DOMWindow::webkitResolveLocalFileSystemURL):
1053         * page/DOMWindow.h:
1054         * page/DOMWindow.idl:
1055         * workers/WorkerContext.cpp:
1056         (WebCore::WorkerContext::webkitRequestFileSystem):
1057         (WebCore::WorkerContext::webkitRequestFileSystemSync):
1058         (WebCore::WorkerContext::webkitResolveLocalFileSystemURL):
1059         (WebCore::WorkerContext::webkitResolveLocalFileSystemSyncURL):
1060         * workers/WorkerContext.h:
1061         * workers/WorkerContext.idl:
1062
1063 2011-04-18  Steve Lacey  <sjl@chromium.org>
1064
1065         Reviewed by Dimitri Glazkov.
1066
1067         Decouple media controls usage from implementation.
1068         This allows each port to implement thier own controls in a different
1069         manner to the default webkit implementation.
1070
1071         Convert media controls hooks to a client interface
1072         https://bugs.webkit.org/show_bug.cgi?id=58346
1073
1074         No new tests as there is no functional change.
1075
1076         * Android.mk:
1077         * CMakeLists.txt:
1078         * GNUmakefile.list.am:
1079         * WebCore.gypi:
1080         * WebCore.pro:
1081         * WebCore.vcproj/WebCore.vcproj:
1082         * WebCore.xcodeproj/project.pbxproj:
1083         * html/HTMLMediaElement.cpp:
1084         (WebCore::HTMLMediaElement::mediaControls):
1085         (WebCore::HTMLMediaElement::ensureMediaControls):
1086         (WebCore::HTMLMediaElement::preDispatchEventHandler):
1087         * html/HTMLMediaElement.h:
1088         * html/shadow/MediaControlElements.cpp:
1089         (WebCore::MediaControlPanelMuteButtonElement::MediaControlPanelMuteButtonElement):
1090         (WebCore::MediaControlPanelMuteButtonElement::create):
1091         (WebCore::MediaControlTimelineElement::MediaControlTimelineElement):
1092         (WebCore::MediaControlTimelineElement::create):
1093         (WebCore::MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement):
1094         (WebCore::MediaControlFullscreenButtonElement::create):
1095         * html/shadow/MediaControlElements.h:
1096         * html/shadow/MediaControlRootElement.cpp:
1097         (WebCore::MediaControlRootElement::MediaControlRootElement):
1098         (WebCore::MediaControls::create):
1099         * html/shadow/MediaControlRootElement.h:
1100         * html/shadow/MediaControls.cpp: Added.
1101         (WebCore::MediaControls::MediaControls):
1102         * html/shadow/MediaControls.h: Added.
1103         (WebCore::MediaControls::~MediaControls):
1104
1105 2011-04-18  Pascal Massimino  <pascal.massimino@gmail.com>
1106
1107         Reviewed by Adam Barth.
1108
1109         Add incremental decoding to WebP decoder
1110         https://bugs.webkit.org/show_bug.cgi?id=58851
1111
1112         No new tests, as it's not possible for the layout test framework to
1113         force the decoders to decode incrementally.
1114
1115         * platform/image-decoders/webp/WEBPImageDecoder.cpp:
1116         (WebCore::WEBPImageDecoder::WEBPImageDecoder):
1117         (WebCore::WEBPImageDecoder::decode):
1118         * platform/image-decoders/webp/WEBPImageDecoder.h:
1119
1120 2011-04-18  Daniel Bates  <dbates@rim.com>
1121
1122         Reviewed by Adam Roben.
1123
1124         With PAN_SCROLLING, mousedown events for a mouse button aren't dispatched while
1125         pressing-and-holding another mouse button
1126         https://bugs.webkit.org/show_bug.cgi?id=58700
1127
1128         Fixes an issue where mousedown events weren't dispatched when pressing a mouse button A
1129         while pressing and holding a mouse button B, where A != B. This issue only affects builds
1130         that enable PAN_SCROLLING.
1131
1132         On mouse press with autoscroll in progress (m_autoscrollInProgress == true) we stopped
1133         the autoscroll timer, invalidated the click, and swallowed the mouse press. Instead, we
1134         should only stop the autoscroll timer.
1135
1136         Test: fast/events/fire-mousedown-while-pressing-mouse-button.html
1137
1138         * page/EventHandler.cpp:
1139         (WebCore::EventHandler::handleMousePressEvent):
1140
1141 2011-04-18  Jon Lee  <jonlee@apple.com>
1142
1143         Reviewed by Maciej Stachowiak.
1144
1145         With overlay scrollbars, textarea resize corner gains borders when the textarea becomes scrollable
1146         https://bugs.webkit.org/show_bug.cgi?id=58617
1147         <rdar://problem/9048012>
1148
1149         * rendering/RenderLayer.cpp:
1150         (WebCore::RenderLayer::paintResizer): Check for overlay scrollbars first, and then if the bars were created, before displaying the borders
1151
1152 2011-04-18  Jon Lee  <jonlee@apple.com>
1153
1154         Reviewed by Maciej Stachowiak.
1155
1156         Selected item background in list box gets rendered on top of overlay scrollbar knob (58824)
1157         https://bugs.webkit.org/show_bug.cgi?id=58824
1158         <rdar://problem/9292680>
1159
1160         * rendering/RenderListBox.cpp:
1161         (WebCore::RenderListBox::paintObject): Moving the stage of painting the scrollbars to the foreground if using overlay scrollbars
1162
1163 2011-04-18  John Bauman  <jbauman@chromium.org>
1164
1165         Reviewed by Kenneth Russell.
1166
1167         Don't cast BitmapImageSingleFrameSkia to BitmapImage
1168         https://bugs.webkit.org/show_bug.cgi?id=58821
1169
1170         BitmapImageSingleFrameSkia has isBitmap return true, but
1171         can't be cast to a BitmapImage. Instead of using BitmapImage,
1172         use isOpaque from SkBitmap to determine if the image has alpha.
1173
1174         No new tests.
1175
1176         * platform/graphics/skia/GraphicsContext3DSkia.cpp:
1177         (WebCore::GraphicsContext3D::getImageData):
1178
1179 2011-04-18  Jessie Berlin  <jberlin@apple.com>
1180
1181         Reviewed by Steve Falkenburg.
1182
1183         If deleting the StorageTracker.db file fails, local storage is left in a strange state.
1184         https://bugs.webkit.org/show_bug.cgi?id=58805
1185
1186         * storage/StorageTracker.cpp:
1187         (WebCore::StorageTracker::syncFileSystemAndTrackerDatabase):
1188         When cleaning up the StorageTracker.db file, is not enough to call syncDeleteOrigin.
1189         deleteOrigin itself must be called to update the data structures that syncDeleteOrigin
1190         depends on and to prevent clashes between a theoretical web page editing local storage
1191         at the same time this method is called.
1192         (WebCore::StorageTracker::syncDeleteAllOrigins):
1193         If it is not possible to delete the StorageTracker.db file, empty it.
1194         (WebCore::StorageTracker::deleteOriginOnMainThread):
1195         Wrapper for deleteOrigin.
1196         * storage/StorageTracker.h:
1197
1198 2011-04-18  Geoffrey Garen  <ggaren@apple.com>
1199
1200         Build fix.
1201
1202         Added back missing #include.
1203
1204         * bindings/js/DOMWrapperWorld.cpp:
1205
1206 2011-04-18  Enrica Casucci  <enrica@apple.com>
1207
1208         Reviewed by Maciej Stachowiak.
1209
1210         Dropping a file in a WKView (WebKit2) doesn't load the file.
1211         https://bugs.webkit.org/show_bug.cgi?id=58842
1212         <rdar://problem/8514409>
1213         
1214         The URL string for the file contains an extra %00 at the end
1215         that causes the network framework to fail to load the file.
1216         
1217         * platform/win/ClipboardUtilitiesWin.cpp:
1218         (WebCore::getURL):
1219
1220 2011-04-18  Geoffrey Garen  <ggaren@apple.com>
1221
1222         Discovered and rubber-stamped by Stephanie Lewis.
1223
1224         Restored some code I accidentally deleted in <http://trac.webkit.org/changeset/83990>
1225
1226         * bindings/js/DOMWrapperWorld.cpp:
1227         (WebCore::DOMWrapperWorld::~DOMWrapperWorld):
1228         (WebCore::DOMWrapperWorld::clearWrappers): Do clear / destroy all our
1229         window shells when clearing / destroying ourselves. r83990 removed this
1230         behavior for documents since there are no per-document maps anymore,
1231         but removing this behavior for window shells too was a typo.
1232
1233 2011-04-18  Geoffrey Garen  <ggaren@apple.com>
1234
1235         Reviewed by Oliver Hunt.
1236
1237         Made DOM handle ownership customizable, and customized it for Nodes and NamedAttrMaps
1238         https://bugs.webkit.org/show_bug.cgi?id=58828
1239
1240         * WebCore.exp.in: Blah.
1241
1242         * bindings/js/DOMWrapperWorld.cpp: Moved code related to JSNode ownership
1243         to JSNodeCustom, where other custom JSNode-related code goes.
1244
1245         (WebCore::JSDOMWrapperOwner::finalize):
1246         (WebCore::DOMWrapperWorld::DOMWrapperWorld):
1247         * bindings/js/DOMWrapperWorld.h:
1248         (WebCore::JSDOMWrapperOwner::JSDOMWrapperOwner):
1249         (WebCore::DOMWrapperWorld::defaultWrapperOwner): Renamed DOMObjectHandleOwner
1250         to JSDOMWrapperOwner, to match the name of JSDOMWrapper.
1251
1252         * bindings/js/JSArrayBufferViewHelper.h:
1253         (WebCore::toJSArrayBufferView):
1254         * bindings/js/JSCSSRuleCustom.cpp:
1255         (WebCore::toJS):
1256         * bindings/js/JSCSSValueCustom.cpp:
1257         (WebCore::toJS):
1258         * bindings/js/JSCanvasRenderingContextCustom.cpp:
1259         (WebCore::toJS): Removed "DOMObject" and "Node" from the names of wrapper-
1260         related functions, since there is no meaningful distinction between the
1261         two anymore -- they both use the same extensible interface.
1262         
1263         * bindings/js/JSDOMBinding.cpp: Removed some now-unused functions.
1264
1265         * bindings/js/JSDOMBinding.h:
1266         (WebCore::getInlineCachedWrapper):
1267         (WebCore::setInlineCachedWrapper):
1268         (WebCore::clearInlineCachedWrapper):
1269         (WebCore::wrapperOwner):
1270         (WebCore::wrapperContext):
1271         (WebCore::getCachedWrapper):
1272         (WebCore::cacheWrapper):
1273         (WebCore::uncacheWrapper):
1274         (WebCore::createWrapper):
1275         (WebCore::wrap): Created a generic, extensible mechanism for creating,
1276         caching, retrieving, marking, and destroying DOM wrappers. This eliminates
1277         the difference between DOM object wrappers and DOM node wrappers, and
1278         lays the groundwork for getting rid of MarkStack::deprecatedAppend usage
1279         for marking the remainder of our DOM objects.
1280         
1281         * bindings/js/JSDOMWindowCustom.cpp:
1282         (WebCore::JSDOMWindow::history):
1283         (WebCore::JSDOMWindow::location):
1284         * bindings/js/JSDataViewCustom.cpp:
1285         (WebCore::toJS):
1286         * bindings/js/JSDocumentCustom.cpp:
1287         (WebCore::JSDocument::location):
1288         (WebCore::toJS):
1289         * bindings/js/JSElementCustom.cpp:
1290         (WebCore::toJSNewlyCreated):
1291         * bindings/js/JSEventCustom.cpp:
1292         (WebCore::toJS):
1293         * bindings/js/JSHTMLCollectionCustom.cpp:
1294         (WebCore::toJS):
1295         * bindings/js/JSImageDataCustom.cpp:
1296         (WebCore::toJS): Updated for renames mentioned above.
1297
1298         * bindings/js/JSNamedNodeMapCustom.cpp:
1299         (WebCore::JSNamedNodeMapOwner::isReachableFromOpaqueRoots):
1300         (WebCore::JSNamedNodeMapOwner::finalize):
1301         (WebCore::wrapperOwner):
1302         (WebCore::wrapperContext):
1303         (WebCore::JSNamedNodeMap::markChildren):
1304         (WebCore::toJS): Updated to use our new interface for customizing wrapper
1305         lifetime management through function overloading without using
1306         MarkStack::deprecatedAppend.
1307
1308         * bindings/js/JSNodeCustom.cpp:
1309         (WebCore::isObservable):
1310         (WebCore::isReachableFromDOM):
1311         (WebCore::JSNodeOwner::isReachableFromOpaqueRoots):
1312         (WebCore::JSNodeOwner::finalize):
1313         (WebCore::createWrapperInline): Moved node-related code from JSDOMBinding
1314         to here. Removed special case marking code for JSNamedNodeMap because
1315         JSNamedNodeMap now knows how to maintain its own lifetime invariants.
1316
1317         * bindings/js/JSNodeCustom.h:
1318         (WebCore::wrapperOwner):
1319         (WebCore::wrapperContext):
1320         (WebCore::getInlineCachedWrapper):
1321         (WebCore::setInlineCachedWrapper):
1322         (WebCore::clearInlineCachedWrapper):
1323         (WebCore::toJS): Updated to use our new interface for customizing wrapper
1324         lifetime management through function overloading without using
1325         MarkStack::deprecatedAppend or special-case code for nodes.
1326         
1327         * bindings/js/JSSVGPathSegCustom.cpp:
1328         (WebCore::toJS):
1329         * bindings/js/JSStyleSheetCustom.cpp:
1330         (WebCore::toJS): Updated for renames mentioned above.
1331
1332         * bindings/scripts/CodeGeneratorJS.pm: Fixed up newlines. Updated for
1333         renames mentioned above.
1334
1335         * dom/NamedNodeMap.idl: NamedNodeMap needs a custom toJS function now
1336         because it needs to provide a custom WeakHandleOwner at wrapper creation time.
1337
1338 2011-04-18  Jessie Berlin  <jberlin@apple.com>
1339
1340         Rubber-stamped by Sam Weinig.
1341
1342         REGRESSION (r84094): Many tests failing assertions in WebCore::localizedString on Windows.
1343         https://bugs.webkit.org/show_bug.cgi?id=58747
1344
1345         Copy the WebCore Localizable.strings file into the output directory.
1346
1347         * WebCore.vcproj/WebCoreGenerated.vcproj:
1348         * WebCore.vcproj/WebCoreGeneratedCairo.vsprops:
1349         * WebCore.vcproj/WebCoreGeneratedCommon.vsprops:
1350         * WebCore.vcproj/copyInspectorFiles.cmd: Removed.
1351         * WebCore.vcproj/copyWebCoreResourceFiles.cmd: Copied from Source/WebCore/WebCore.vcproj/copyInspectorFiles.cmd.
1352
1353 2011-04-18  Robert Hogan  <robert@webkit.org>
1354
1355         Reviewed by Andreas Kling.
1356
1357         [Qt] PluginViewQt needs to update geometry of plugin widget before scheduling a repaint
1358
1359         When scheduling a repaint for the plugin's widget, PluginViewQt
1360         needs to make sure the widget's geometry is up to date. Otherwise
1361         the paint event happens on the widget's old location.
1362
1363         https://bugs.webkit.org/show_bug.cgi?id=57179
1364
1365         Added a manual test. 
1366
1367         * manual-tests/qt/plugin-painting.html: Added.
1368         * plugins/qt/PluginViewQt.cpp:
1369         (WebCore::PluginView::updatePluginWidget):
1370         (WebCore::PluginView::invalidateRect):
1371
1372 2011-04-18  Oliver Hunt  <oliver@apple.com>
1373
1374         Fix Qt build
1375
1376         * bridge/qt/qt_class.cpp:
1377         (JSC::Bindings::QtClass::fallbackObject):
1378         * bridge/qt/qt_instance.cpp:
1379         (JSC::Bindings::QtInstance::removeCachedMethod):
1380         * bridge/qt/qt_instance.h:
1381
1382 2011-04-18  Oliver Hunt  <oliver@apple.com>
1383
1384         Reviewed by Gavin Barraclough.
1385
1386         Remove DeprecatedPtr
1387         https://bugs.webkit.org/show_bug.cgi?id=58718
1388
1389         Replace use of DeprecatedPtr<> with Global<> as ownership rules
1390         aren't obvious, have filed bug #58820 on seeing if this is safe.
1391
1392         * bridge/qt/qt_class.cpp:
1393         (JSC::Bindings::QtClass::fallbackObject):
1394         * bridge/qt/qt_instance.cpp:
1395         (JSC::Bindings::QtInstance::removeCachedMethod):
1396         (JSC::Bindings::QtInstance::markAggregate):
1397         * bridge/qt/qt_instance.h:
1398
1399 2011-04-14  Matthew Delaney  <mdelaney@apple.com>
1400
1401         Reviewed by Simon Fraser.
1402
1403         [CG] Use vImage (un)premultiplyImageData functions for get/putImageData with IOSurfaces
1404         https://bugs.webkit.org/show_bug.cgi?id=58088
1405
1406         * platform/graphics/cg/ImageBufferDataCG.cpp:
1407         (WebCore::convertScanline): un/premultiplies and converts a scanline of image data from/to BGRA to/from RGBA
1408         (WebCore::unpremultitplyScanline):
1409         (WebCore::premultitplyScanline):
1410         (WebCore::ImageBufferData::getData):
1411         (WebCore::ImageBufferData::putData):
1412
1413 2011-04-18  Jeff Miller  <jeffm@apple.com>
1414
1415         Reviewed by Dan Bernstein.
1416
1417         Allow all log channels to be initialized from WebCoreLogLevel Windows environment variable
1418         https://bugs.webkit.org/show_bug.cgi?id=58811
1419
1420         * platform/win/LoggingWin.cpp:
1421         (WebCore::InitializeLoggingChannelsIfNecessary): Support initializing LogResourceLoading, LogProgress, and LogFileAPI from WebCoreLogLevel Windows environment variable.
1422
1423 2011-04-18  Andrew Scherkus  <scherkus@chromium.org>
1424
1425         Reviewed by Eric Seidel.
1426
1427         Reset fullscreen element reference when leaving fullscreen mode and some other cleanup.
1428
1429         https://bugs.webkit.org/show_bug.cgi?id=58719
1430
1431         Test: fullscreen/full-screen-cancel.html
1432
1433         * dom/Document.cpp:
1434         (WebCore::Document::Document): Remove m_isFullscreen.
1435         (WebCore::Document::webkitWillEnterFullScreenForElement):
1436         (WebCore::Document::webkitWillExitFullScreenForElement): Remove duplicate call to setAnimating().
1437         (WebCore::Document::webkitDidExitFullScreenForElement): Reset m_fullScreenElement reference.
1438         * dom/Document.h:
1439         (WebCore::Document::webkitIsFullScreen): Use m_fullScreenElement instead of m_isFullscreen.
1440         (WebCore::Document::webkitFullScreenKeyboardInputAllowed): Ditto.
1441
1442 2011-04-18  Dan Bernstein  <mitz@apple.com>
1443
1444         Reviewed by Eric Seidel.
1445
1446         <rdar://problem/9282486> REGRESSION (r81992): Facebook photo tags can get cut off when moving the mouse.
1447         https://bugs.webkit.org/show_bug.cgi?id=58500
1448
1449         Test: fast/repaint/text-in-relative-positioned-inline.html
1450
1451         * rendering/RenderText.cpp:
1452         (WebCore::RenderText::clippedOverflowRectForRepaint): Use the container’s repaint rect, not
1453         the containing block’s. This matters when the containing block is outside the RenderText’s
1454         enclosing layer, as is the case here.
1455
1456 2011-04-15  Stephen White  <senorblanco@chromium.org>
1457
1458         Reviewed by Kenneth Russell.
1459
1460         Speed up DrawingBuffer::reset().
1461         https://bugs.webkit.org/show_bug.cgi?id=58706
1462
1463         When DrawingBuffer::reset() is called, it should not reallocate
1464         the FBOs if the size has not changed.  It should just do a glClear().
1465
1466         Covered by tests in fast/canvas and canvas/philip.
1467
1468         * platform/graphics/chromium/DrawingBufferChromium.cpp:
1469         (WebCore::DrawingBuffer::DrawingBuffer):
1470         Initialize the size to -1, -1, so the size change check will work on
1471         first reset.
1472         * platform/graphics/gpu/DrawingBuffer.cpp:
1473         (WebCore::DrawingBuffer::reset):
1474         If the size hasn't changed, don't resize the FBOs.  Just clear the
1475         relevant buffers.
1476
1477 2011-04-18  Pavel Feldman  <pfeldman@google.com>
1478
1479         Reviewed by Yury Semikhatsky.
1480
1481         Web Inspector: group resources by type in the resources panel.
1482         https://bugs.webkit.org/show_bug.cgi?id=58796
1483
1484         * inspector/front-end/ResourcesPanel.js:
1485         (WebInspector.ResourcesPanel.prototype._frameAdded):
1486         (WebInspector.ResourcesPanel.prototype._resourceAdded):
1487         (WebInspector.BaseStorageTreeElement):
1488         (WebInspector.BaseStorageTreeElement.prototype.onattach):
1489         (WebInspector.StorageCategoryTreeElement):
1490         (WebInspector.FrameTreeElement):
1491         (WebInspector.FrameTreeElement.prototype.setTitles):
1492         (WebInspector.FrameTreeElement.prototype.set hovered):
1493         (WebInspector.FrameTreeElement.prototype.appendResource):
1494         (WebInspector.FrameTreeElement.prototype.appendChild):
1495         (WebInspector.FrameTreeElement.prototype._insertInPresentationOrder):
1496         (WebInspector.FrameTreeElement.prototype._insertInPresentationOrder.compare):
1497
1498 2011-04-18  Timothy Hatcher  <timothy@apple.com>
1499
1500         Make update-webkit-localizable-strings put WebKit/win strings in WebCore
1501         now that all localized strings in WebKit/win use WEB_UI_STRING.
1502
1503         https://webkit.org/b/58747
1504
1505         Reviewed by Dan Bernstein.
1506
1507         * English.lproj/Localizable.strings: Updated with strings from WebKit/win.
1508
1509 2011-04-15  MORITA Hajime  <morrita@google.com>
1510
1511         Reviewed by Adam Barth.
1512
1513         REGRESSION: <progress> doesn't animate if it doesn't have value
1514         https://bugs.webkit.org/show_bug.cgi?id=58693
1515
1516         The initial value of RenderProgress::m_position is accidentally same as
1517         the indeterminate value, that makes update code on updateFromElement() skipped.
1518         This change set unique invalid value for the initial value of m_position.
1519         
1520         No new tests. Testing animated bar is not possible with DRT.
1521
1522         * html/HTMLProgressElement.cpp:
1523         (WebCore::HTMLProgressElement::position):
1524         * html/HTMLProgressElement.h:
1525         * rendering/RenderProgress.cpp:
1526         (WebCore::RenderProgress::RenderProgress):
1527         (WebCore::RenderProgress::isDeterminate):
1528
1529 2011-04-18  MORITA Hajime  <morrita@google.com>
1530
1531         Reviewed by Eric Seidel.
1532
1533         REGRESSION: [Chromium Win] details-add-summary-1.html start crashing after r84039
1534         https://bugs.webkit.org/show_bug.cgi?id=58791
1535         
1536         On refreshMainSummary(), findMainSummary() possibly releases oldSummary.
1537         We should guard it again RefPtr.
1538
1539         * html/HTMLDetailsElement.cpp:
1540         (WebCore::HTMLDetailsElement::refreshMainSummary):
1541
1542 2011-04-18  Antti Koivisto  <antti@apple.com>
1543
1544         Reviewed by Simon Fraser.
1545
1546         CSSSelector double frees
1547         https://bugs.webkit.org/show_bug.cgi?id=56124
1548         <rdar://problem/9119036>
1549
1550         In all stacks this is occuring when the document is kept alive by the guard ref only
1551         and the node holding it is deleted.
1552
1553         As a speculative fix, clear the document stylesheets when it turns into a guard ref zombie.
1554         This has a pretty good chance of fixing the actual bug. At minimum it will move the
1555         crash to an earlier, more easily traceble point.
1556
1557         No tests, crash stacks only, no idea how to reproduce.
1558
1559         * dom/Document.cpp:
1560         (WebCore::Document::removedLastRef):
1561
1562 2011-04-18  Alexander Pavlov  <apavlov@chromium.org>
1563
1564         Reviewed by Yury Semikhatsky.
1565
1566         Web Inspector: Backspace in the Console is broken
1567         https://bugs.webkit.org/show_bug.cgi?id=58764
1568
1569         * inspector/front-end/inspector.js:
1570         (WebInspector.documentKeyDown):
1571
1572 2011-04-18  Hans Wennborg  <hans@chromium.org>
1573
1574         Reviewed by Steve Block.
1575
1576         LevelDB backend for IndexedDB
1577         https://bugs.webkit.org/show_bug.cgi?id=57372
1578
1579         Only available behind a run-time flag. Covered by existing layout
1580         tests.
1581
1582         * Android.mk:
1583         * CMakeLists.txt:
1584         * GNUmakefile.am:
1585         * GNUmakefile.list.am:
1586         * WebCore.gyp/WebCore.gyp:
1587         * WebCore.gypi:
1588         * WebCore.pri:
1589         * WebCore.pro:
1590         * WebCore.xcodeproj/project.pbxproj:
1591         * platform/leveldb/LevelDBComparator.h: Added.
1592         (WebCore::LevelDBComparator::~LevelDBComparator):
1593         * platform/leveldb/LevelDBDatabase.cpp: Added.
1594         (WebCore::makeSlice):
1595         (WebCore::makeLevelDBSlice):
1596         (WebCore::makeVector):
1597         (WebCore::LevelDBDatabase::LevelDBDatabase):
1598         (WebCore::LevelDBDatabase::~LevelDBDatabase):
1599         (WebCore::LevelDBDatabase::open):
1600         (WebCore::LevelDBDatabase::put):
1601         (WebCore::LevelDBDatabase::remove):
1602         (WebCore::LevelDBDatabase::get):
1603         (WebCore::LevelDBDatabase::newIterator):
1604         * platform/leveldb/LevelDBDatabase.h: Added.
1605         * platform/leveldb/LevelDBIterator.cpp: Added.
1606         (WebCore::LevelDBIterator::~LevelDBIterator):
1607         (WebCore::LevelDBIterator::LevelDBIterator):
1608         (WebCore::makeSlice):
1609         (WebCore::makeLevelDBSlice):
1610         (WebCore::LevelDBIterator::isValid):
1611         (WebCore::LevelDBIterator::seekToLast):
1612         (WebCore::LevelDBIterator::seek):
1613         (WebCore::LevelDBIterator::next):
1614         (WebCore::LevelDBIterator::prev):
1615         (WebCore::LevelDBIterator::key):
1616         (WebCore::LevelDBIterator::value):
1617         * platform/leveldb/LevelDBIterator.h: Added.
1618         * platform/leveldb/LevelDBSlice.h: Added.
1619         (WebCore::LevelDBSlice::LevelDBSlice):
1620         (WebCore::LevelDBSlice::~LevelDBSlice):
1621         (WebCore::LevelDBSlice::begin):
1622         (WebCore::LevelDBSlice::end):
1623         * storage/IDBLevelDBBackingStore.cpp:
1624         (WebCore::encodeByte):
1625         (WebCore::maxIDBKey):
1626         (WebCore::minIDBKey):
1627         (WebCore::encodeInt):
1628         (WebCore::decodeInt):
1629         (WebCore::encodeVarInt):
1630         (WebCore::decodeVarInt):
1631         (WebCore::encodeString):
1632         (WebCore::decodeString):
1633         (WebCore::encodeStringWithLength):
1634         (WebCore::decodeStringWithLength):
1635         (WebCore::encodeDouble):
1636         (WebCore::decodeDouble):
1637         (WebCore::encodeIDBKey):
1638         (WebCore::decodeIDBKey):
1639         (WebCore::extractEncodedIDBKey):
1640         (WebCore::compareEncodedIDBKeys):
1641         (WebCore::getInt):
1642         (WebCore::putInt):
1643         (WebCore::getString):
1644         (WebCore::putString):
1645         (WebCore::KeyPrefix::SchemaVersionKey::encode):
1646         (WebCore::KeyPrefix::MaxDatabaseIdKey::encode):
1647         (WebCore::KeyPrefix::DatabaseFreeListKey::DatabaseFreeListKey):
1648         (WebCore::KeyPrefix::DatabaseFreeListKey::decode):
1649         (WebCore::KeyPrefix::DatabaseFreeListKey::encode):
1650         (WebCore::KeyPrefix::DatabaseFreeListKey::databaseId):
1651         (WebCore::KeyPrefix::DatabaseFreeListKey::compare):
1652         (WebCore::KeyPrefix::DatabaseNameKey::decode):
1653         (WebCore::KeyPrefix::DatabaseNameKey::encode):
1654         (WebCore::KeyPrefix::DatabaseNameKey::origin):
1655         (WebCore::KeyPrefix::DatabaseNameKey::databaseName):
1656         (WebCore::KeyPrefix::DatabaseNameKey::compare):
1657         (WebCore::KeyPrefix::DatabaseMetaDataKey::encode):
1658         (WebCore::KeyPrefix::ObjectStoreMetaDataKey::ObjectStoreMetaDataKey):
1659         (WebCore::KeyPrefix::ObjectStoreMetaDataKey::decode):
1660         (WebCore::KeyPrefix::ObjectStoreMetaDataKey::encode):
1661         (WebCore::KeyPrefix::ObjectStoreMetaDataKey::objectStoreId):
1662         (WebCore::KeyPrefix::ObjectStoreMetaDataKey::metaDataType):
1663         (WebCore::KeyPrefix::ObjectStoreMetaDataKey::compare):
1664         (WebCore::KeyPrefix::IndexMetaDataKey::IndexMetaDataKey):
1665         (WebCore::KeyPrefix::IndexMetaDataKey::decode):
1666         (WebCore::KeyPrefix::IndexMetaDataKey::encode):
1667         (WebCore::KeyPrefix::IndexMetaDataKey::compare):
1668         (WebCore::KeyPrefix::IndexMetaDataKey::indexId):
1669         (WebCore::KeyPrefix::IndexMetaDataKey::metaDataType):
1670         (WebCore::KeyPrefix::ObjectStoreFreeListKey::ObjectStoreFreeListKey):
1671         (WebCore::KeyPrefix::ObjectStoreFreeListKey::decode):
1672         (WebCore::KeyPrefix::ObjectStoreFreeListKey::encode):
1673         (WebCore::KeyPrefix::ObjectStoreFreeListKey::objectStoreId):
1674         (WebCore::KeyPrefix::ObjectStoreFreeListKey::compare):
1675         (WebCore::KeyPrefix::IndexFreeListKey::IndexFreeListKey):
1676         (WebCore::KeyPrefix::IndexFreeListKey::decode):
1677         (WebCore::KeyPrefix::IndexFreeListKey::encode):
1678         (WebCore::KeyPrefix::IndexFreeListKey::compare):
1679         (WebCore::KeyPrefix::IndexFreeListKey::objectStoreId):
1680         (WebCore::KeyPrefix::IndexFreeListKey::indexId):
1681         (WebCore::KeyPrefix::ObjectStoreNamesKey::decode):
1682         (WebCore::KeyPrefix::ObjectStoreNamesKey::encode):
1683         (WebCore::KeyPrefix::ObjectStoreNamesKey::compare):
1684         (WebCore::KeyPrefix::ObjectStoreNamesKey::objectStoreName):
1685         (WebCore::KeyPrefix::IndexNamesKey::IndexNamesKey):
1686         (WebCore::KeyPrefix::IndexNamesKey::decode):
1687         (WebCore::KeyPrefix::IndexNamesKey::encode):
1688         (WebCore::KeyPrefix::IndexNamesKey::compare):
1689         (WebCore::KeyPrefix::IndexNamesKey::indexName):
1690         (WebCore::KeyPrefix::ObjectStoreDataKey::decode):
1691         (WebCore::KeyPrefix::ObjectStoreDataKey::encode):
1692         (WebCore::KeyPrefix::ObjectStoreDataKey::compare):
1693         (WebCore::KeyPrefix::ObjectStoreDataKey::userKey):
1694         (WebCore::KeyPrefix::ExistsEntryKey::decode):
1695         (WebCore::KeyPrefix::ExistsEntryKey::encode):
1696         (WebCore::KeyPrefix::ExistsEntryKey::compare):
1697         (WebCore::KeyPrefix::ExistsEntryKey::userKey):
1698         (WebCore::KeyPrefix::IndexDataKey::IndexDataKey):
1699         (WebCore::KeyPrefix::IndexDataKey::decode):
1700         (WebCore::KeyPrefix::IndexDataKey::encode):
1701         (WebCore::KeyPrefix::IndexDataKey::encodeMaxKey):
1702         (WebCore::KeyPrefix::IndexDataKey::compare):
1703         (WebCore::KeyPrefix::IndexDataKey::databaseId):
1704         (WebCore::KeyPrefix::IndexDataKey::objectStoreId):
1705         (WebCore::KeyPrefix::IndexDataKey::indexId):
1706         (WebCore::KeyPrefix::IndexDataKey::userKey):
1707         (WebCore::KeyPrefix::realCompare):
1708         (WebCore::KeyPrefix::compareKeys):
1709         (WebCore::KeyPrefix::compareIndexKeys):
1710         (WebCore::KeyPrefix::Comparator::compare):
1711         (WebCore::KeyPrefix::Comparator::name):
1712         (WebCore::setUpMetadata):
1713         (WebCore::IDBLevelDBBackingStore::IDBLevelDBBackingStore):
1714         (WebCore::IDBLevelDBBackingStore::open):
1715         (WebCore::IDBLevelDBBackingStore::extractIDBDatabaseMetaData):
1716         (WebCore::getNewDatabaseId):
1717         (WebCore::IDBLevelDBBackingStore::setIDBDatabaseMetaData):
1718         (WebCore::IDBLevelDBBackingStore::getObjectStores):
1719         (WebCore::getNewObjectStoreId):
1720         (WebCore::IDBLevelDBBackingStore::createObjectStore):
1721         (WebCore::deleteRange):
1722         (WebCore::IDBLevelDBBackingStore::deleteObjectStore):
1723         (WebCore::IDBLevelDBBackingStore::getObjectStoreRecord):
1724         (WebCore::getNewVersionNumber):
1725         (WebCore::IDBLevelDBBackingStore::putObjectStoreRecord):
1726         (WebCore::IDBLevelDBBackingStore::clearObjectStore):
1727         (WebCore::IDBLevelDBBackingStore::createInvalidRecordIdentifier):
1728         (WebCore::IDBLevelDBBackingStore::deleteObjectStoreRecord):
1729         (WebCore::IDBLevelDBBackingStore::nextAutoIncrementNumber):
1730         (WebCore::IDBLevelDBBackingStore::keyExistsInObjectStore):
1731         (WebCore::IDBLevelDBBackingStore::forEachObjectStoreRecord):
1732         (WebCore::IDBLevelDBBackingStore::getIndexes):
1733         (WebCore::getNewIndexId):
1734         (WebCore::IDBLevelDBBackingStore::createIndex):
1735         (WebCore::IDBLevelDBBackingStore::deleteIndex):
1736         (WebCore::IDBLevelDBBackingStore::putIndexDataForRecord):
1737         (WebCore::findGreatestKeyLessThan):
1738         (WebCore::IDBLevelDBBackingStore::deleteIndexDataForRecord):
1739         (WebCore::IDBLevelDBBackingStore::getObjectViaIndex):
1740         (WebCore::versionExists):
1741         (WebCore::IDBLevelDBBackingStore::getPrimaryKeyViaIndex):
1742         (WebCore::IDBLevelDBBackingStore::keyExistsInIndex):
1743         (WebCore::findLastIndexKeyEqualTo):
1744         (WebCore::IDBLevelDBBackingStore::openObjectStoreCursor):
1745         (WebCore::IDBLevelDBBackingStore::openIndexKeyCursor):
1746         (WebCore::IDBLevelDBBackingStore::openIndexCursor):
1747         (WebCore::IDBLevelDBBackingStore::createTransaction):
1748         * storage/IDBLevelDBBackingStore.h:
1749
1750 2011-04-18  Pavel Feldman  <pfeldman@google.com>
1751
1752         Reviewed by Yury Semikhatsky.
1753
1754         Web Inspector: add test for CSS-resource binding.
1755         https://bugs.webkit.org/show_bug.cgi?id=58786
1756
1757         Test: inspector/styles/styles-history.html
1758
1759         * inspector/InspectorCSSAgent.cpp:
1760         (WebCore::InspectorCSSAgent::setPropertyText):
1761         (WebCore::InspectorCSSAgent::toggleProperty):
1762         * inspector/InspectorStyleSheet.cpp:
1763         (WebCore::InspectorStyle::setPropertyText):
1764         (WebCore::InspectorStyle::toggleProperty):
1765         (WebCore::InspectorStyleSheet::setPropertyText):
1766         (WebCore::InspectorStyleSheet::toggleProperty):
1767         * inspector/InspectorStyleSheet.h:
1768         * inspector/front-end/CSSStyleModel.js:
1769         (WebInspector.CSSStyleModel.prototype._fireStyleSheetChanged.if):
1770         (WebInspector.CSSStyleModel.prototype._fireStyleSheetChanged.mycallback):
1771         (WebInspector.CSSStyleModel.prototype._fireStyleSheetChanged):
1772         (WebInspector.CSSStyleModel.prototype.setStyleSheetText):
1773         (WebInspector.CSSStyleDeclaration.prototype.insertPropertyAt):
1774         (WebInspector.CSSProperty.prototype.setText.callback):
1775         (WebInspector.CSSProperty.prototype.setText):
1776
1777 2011-04-18  Sheriff Bot  <webkit.review.bot@gmail.com>
1778
1779         Unreviewed, rolling out r83996.
1780         http://trac.webkit.org/changeset/83996
1781         https://bugs.webkit.org/show_bug.cgi?id=58790
1782
1783         layout test editing/selection/move-by-word-visually.html is
1784         failing (Requested by jknotten on #webkit).
1785
1786         * editing/visible_units.cpp:
1787         (WebCore::nextWordBreakInBoxInsideBlockWithDifferentDirectionality):
1788         (WebCore::collectWordBreaksInBoxInsideBlockWithDifferntDirectionality):
1789         (WebCore::previousWordBreakInBox):
1790         (WebCore::leftWordBoundary):
1791         (WebCore::rightWordBoundary):
1792         (WebCore::leftWordPosition):
1793         (WebCore::rightWordPosition):
1794
1795 2011-04-18  Adam Bergkvist  <adam.bergkvist@ericsson.com>
1796
1797         Reviewed by Daniel Bates.
1798
1799         Modify make_names.pl to not include conditional includes unconditionally
1800         https://bugs.webkit.org/show_bug.cgi?id=53672
1801
1802         Fixed conditional includes being unconditionally included.
1803
1804         No new tests (no change in functionality)
1805
1806         * dom/make_names.pl:
1807             - Modified printJSElementIncludes() to only print unconditional element includes.
1808             - Modified printElementIncludes() to only print unconditional element includes.
1809             - Added printConditionalElementIncludes() which takes care of printing conditional element includes.
1810
1811 2011-04-18  Sheriff Bot  <webkit.review.bot@gmail.com>
1812
1813         Unreviewed, rolling out r83803.
1814         http://trac.webkit.org/changeset/83803
1815         https://bugs.webkit.org/show_bug.cgi?id=58782
1816
1817         Caused focus rings to appear in youtube videos (Requested by
1818         inferno-sec on #webkit).
1819
1820         * rendering/RenderWidget.cpp:
1821         (WebCore::RenderWidget::paint):
1822
1823 2011-04-18  Alexander Pavlov  <apavlov@chromium.org>
1824
1825         Reviewed by Pavel Feldman.
1826
1827         Web Inspector: Need a workaround for bug 58422
1828         https://bugs.webkit.org/show_bug.cgi?id=58780
1829
1830         Instead of the A:before content, the link text is displayed as the A tag content.
1831
1832         * inspector/front-end/StylesSidebarPane.js:
1833         (WebInspector.StylePropertiesSection.linkifyUncopyable):
1834         (WebInspector.StylePropertiesSection):
1835         * inspector/front-end/inspector.css:
1836
1837 2011-04-18  Carlos Garcia Campos  <cgarcia@igalia.com>
1838
1839         Unreviewed. Fix WebKit2 GTK build after 82465.
1840
1841         * platform/gtk/LocalizedStringsGtk.cpp:
1842         (WebCore::localizedString):
1843
1844 2011-04-18  Andrey Adaikin  <aandrey@google.com>
1845
1846         Reviewed by Yury Semikhatsky.
1847
1848         Web Inspector: TAB should not move focus from the text editor while live editing
1849         https://bugs.webkit.org/show_bug.cgi?id=58537
1850
1851         * inspector/front-end/TextViewer.js:
1852         (WebInspector.TextViewer.prototype._registerShortcuts):
1853         (WebInspector.TextViewer.prototype._cancelEditing):
1854         (WebInspector.TextEditorMainPanel.prototype.handleUndoRedo):
1855         (WebInspector.TextEditorMainPanel.prototype.handleTabKeyPress):
1856         (WebInspector.TextEditorMainPanel.prototype._setCaretLocation):
1857         (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
1858         (WebInspector.TextEditorMainPanel.prototype._setText):
1859
1860 2011-04-18  Alexander Pavlov  <apavlov@chromium.org>
1861
1862         Reviewed by Yury Semikhatsky.
1863
1864         Web Inspector: Incorrect content area dimensions in Metrics pane for box-sizing: border-box
1865         https://bugs.webkit.org/show_bug.cgi?id=58551
1866
1867         Test: inspector/styles/metrics-box-sizing.html
1868
1869         * inspector/front-end/MetricsSidebarPane.js:
1870         (WebInspector.MetricsSidebarPane.prototype._getPropertyValueAsPx):
1871         (WebInspector.MetricsSidebarPane.prototype._getBox):
1872         (WebInspector.MetricsSidebarPane.prototype._update.getContentAreaWidthPx):
1873         (WebInspector.MetricsSidebarPane.prototype._update.getContentAreaHeightPx):
1874         (WebInspector.MetricsSidebarPane.prototype._update):
1875         (WebInspector.MetricsSidebarPane.prototype.startEditing):
1876         (WebInspector.MetricsSidebarPane.prototype.editingCommitted.setEnabledValueCallback):
1877         (WebInspector.MetricsSidebarPane.prototype.editingCommitted):
1878
1879 2011-04-18  Ilya Tikhonovsky  <loislo@chromium.org>
1880
1881         Reviewed by Yury Semikhatsky.
1882
1883         Web Inspector: Database agent stops to propagate it's events after navigation.
1884         https://bugs.webkit.org/show_bug.cgi?id=58776
1885
1886         * inspector/InspectorAgent.cpp:
1887         (WebCore::InspectorAgent::InspectorAgent):
1888         (WebCore::InspectorAgent::restoreInspectorStateFromCookie):
1889         * inspector/InspectorDatabaseAgent.cpp:
1890         (WebCore::InspectorDatabaseAgent::InspectorDatabaseAgent):
1891         (WebCore::InspectorDatabaseAgent::clearFrontend):
1892         (WebCore::InspectorDatabaseAgent::enable):
1893         (WebCore::InspectorDatabaseAgent::disable):
1894         (WebCore::InspectorDatabaseAgent::restore):
1895         * inspector/InspectorDatabaseAgent.h:
1896         (WebCore::InspectorDatabaseAgent::create):
1897
1898 2011-04-18  Sheriff Bot  <webkit.review.bot@gmail.com>
1899
1900         Unreviewed, rolling out r83968.
1901         http://trac.webkit.org/changeset/83968
1902         https://bugs.webkit.org/show_bug.cgi?id=58769
1903
1904         Breaks Backspace in Web Inspector console (Requested by
1905         apavlov on #webkit).
1906
1907         * inspector/front-end/inspector.js:
1908         (WebInspector.documentKeyDown):
1909
1910 2011-04-15  Yury Semikhatsky  <yurys@chromium.org>
1911
1912         Reviewed by Pavel Feldman.
1913
1914         Web Inspector: introduce WorkerInspectorController
1915         https://bugs.webkit.org/show_bug.cgi?id=58668
1916
1917         WorkerInspectorController will be owned by WorkerContext and will hold all inspector
1918         agents and will also manage connection to the inspector frontend.
1919
1920         * CMakeLists.txt:
1921         * GNUmakefile.list.am:
1922         * WebCore.gypi:
1923         * WebCore.pro:
1924         * WebCore.vcproj/WebCore.vcproj:
1925         * WebCore.xcodeproj/project.pbxproj:
1926         * bindings/js/ScriptState.cpp:
1927         (WebCore::scriptStateFromWorkerContext):
1928         * bindings/js/ScriptState.h:
1929         * bindings/v8/ScriptState.cpp:
1930         (WebCore::scriptStateFromWorkerContext):
1931         * bindings/v8/ScriptState.h:
1932         * inspector/InspectorState.cpp:
1933         (WebCore::InspectorState::updateCookie):
1934         * inspector/WorkerInspectorController.cpp: Added.
1935         (WebCore::WorkerInspectorController::WorkerInspectorController):
1936         (WebCore::WorkerInspectorController::~WorkerInspectorController):
1937         (WebCore::WorkerInspectorController::connectFrontend):
1938         (WebCore::WorkerInspectorController::disconnectFrontend):
1939         (WebCore::WorkerInspectorController::dispatchMessageFromFrontend):
1940         * inspector/WorkerInspectorController.h: Copied from Source/WebCore/bindings/js/ScriptState.h.
1941         * workers/WorkerContext.cpp:
1942         (WebCore::WorkerContext::WorkerContext):
1943         * workers/WorkerContext.h:
1944         (WebCore::WorkerContext::workerInspectorController):
1945
1946 2011-04-17  Thierry Reding  <thierry.reding@avionic-design.de>
1947
1948         Reviewed by Adam Barth.
1949
1950         Fix build with GCC 4.6.
1951
1952         * dom/make_names.pl: Execute preprocessor without the -P option. The
1953         preprocessor in GCC 4.6 eats empty lines, effectively breaking the
1954         parsing performed by this script. Dropping the -P option when invoking
1955         the preprocessor keeps the empty lines but as a side-effect also adds
1956         additional linemarkers.
1957
1958         From the cpp manpage:
1959
1960           -P  Inhibit generation of linemarkers in the output from the
1961               preprocessor. This might be useful when running the preprocessor
1962               on something that is not C code, and will be sent to a program
1963               which might be confused by the linemarkers.
1964
1965         The linemarkers are not problematic, however, because the script
1966         properly handles them by ignoring all lines starting with a #.
1967
1968 2011-04-17  David Kilzer  <ddkilzer@apple.com>
1969
1970         <http://webkit.org/b/58463> Switch HTTP pipelining from user default to private setting
1971         <rdar://problem/9268729>
1972
1973         Reviewed by Dan Bernstein.
1974
1975         This replaces support for the WebKitEnableHTTPPipelining user
1976         default with methods on the WebCore::ResourceRequest class in
1977         WebCore, the WebView class in WebKit1, and the WebContext class
1978         in WebKit2.  It also removes support for the
1979         WebKitForceHTTPPipeliningPriorityHigh user default which was not
1980         needed.
1981
1982         Run these commands if you set the user defaults previously,
1983         replacing "BUNDLE.ID" with your application's bundle ID:
1984
1985             defaults delete BUNDLE.ID WebKitEnableHTTPPipelining
1986             defaults delete BUNDLE.ID WebKitForceHTTPPipeliningPriorityHigh
1987
1988         * WebCore.exp.in: Export ResourceRequest::httpPipeliningEnabled()
1989         and ResourceRequest::setHTTPPipeliningEnabled().
1990
1991         * platform/network/ResourceRequestBase.h:
1992         (WebCore::isHTTPPipeliningEnabled): Removed declaration.
1993         (WebCore::shouldForceHTTPPipeliningPriorityHigh): Removed declaration.
1994
1995         * platform/network/cf/ResourceRequest.h:
1996         (WebCore::ResourceRequest::httpPipeliningEnabled): Added declaration.
1997         (WebCore::ResourceRequest::setHTTPPipeliningEnabled): Added declaration.
1998         (WebCore::ResourceRequest::s_httpPipeliningEnabled): Added declaration.
1999
2000         * platform/network/cf/ResourceRequestCFNet.cpp:
2001         (WebCore::ResourceRequest::s_httpPipeliningEnabled): Added.
2002         (WebCore::ResourceRequest::httpPipeliningEnabled): Added.
2003         (WebCore::ResourceRequest::setHTTPPipeliningEnabled): Added.
2004         (WebCore::initializeMaximumHTTPConnectionCountPerHost): Switched
2005         to use ResourceRequest::httpPipeliningEnabled().
2006         (WebCore::readBooleanPreference): Removed.
2007         (WebCore::isHTTPPipeliningEnabled): Removed.
2008         (WebCore::shouldForceHTTPPipeliningPriorityHigh): Removed.
2009
2010         * platform/network/mac/ResourceRequestMac.mm:
2011         (WebCore::ResourceRequest::doUpdateResourceRequest): Switched to
2012         use ResourceRequest::httpPipeliningEnabled().  Removed check for
2013         shouldForceHTTPPipeliningPriorityHigh().
2014         (WebCore::ResourceRequest::doUpdatePlatformRequest): Ditto.
2015
2016 2011-04-17  Dan Bernstein  <mitz@apple.com>
2017
2018         Reviewed by Maciej Stachowiak.
2019
2020         REGRESSION (r84096): <br> moved to the right in fast/block/float/032.html
2021         https://bugs.webkit.org/show_bug.cgi?id=58736
2022
2023         * rendering/RenderBlockLineLayout.cpp:
2024         (WebCore::RenderBlock::appendFloatingObjectToLastLine): It is enough to extend the float so
2025         that it touches the bottom of the previous line, since RenderBlock::markLinesDirtyInBlockRange()
2026         always dirties the line after the last one in the range.
2027
2028 2011-04-17  Patrick Gansterer  <paroga@webkit.org>
2029
2030         Unreviewed. Add missing include to fix build without precompiled header.
2031
2032         * rendering/RenderMediaControls.cpp:
2033
2034 2011-04-17  Daniel Bates  <dbates@webkit.org>
2035
2036         Attempt to fix the Chromium build after changeset 84110 <http://trac.webkit.org/changeset/84110>
2037         (https://bugs.webkit.org/show_bug.cgi?id=57842).
2038
2039         * loader/cache/CachedResourceLoader.cpp:
2040         (WebCore::CachedResourceLoader::canRequest): Rename CachedResource::LinkPrefetch to CachedResource::LinkResource.
2041
2042 2011-04-17  Patrick Gansterer  <paroga@webkit.org>
2043
2044         Reviewed by Eric Seidel.
2045
2046         Remove pthread dependency of GCController
2047         https://bugs.webkit.org/show_bug.cgi?id=54833
2048
2049         * bindings/js/GCController.cpp:
2050         (WebCore::GCController::garbageCollectOnAlternateThreadForDebugging):
2051
2052 2011-04-17  Gavin Peters  <gavinp@chromium.org>
2053
2054         Reviewed by Adam Barth.
2055
2056         Add support for link rel type "subresource"
2057         https://bugs.webkit.org/show_bug.cgi?id=57842
2058
2059         Link rel=prefetch is great for cache warming for resources on
2060         subsequent pages, but it launches requests at too low a priority
2061         to use for subresources of the current page.
2062
2063         Particularly after https://bugs.webkit.org/show_bug.cgi?id=51940
2064         is implemented, a rel type that launches requests at an higher
2065         priority is going to be very useful.  This rel type is in the
2066         HTML5 spec at http://wiki.whatwg.org/wiki/RelExtensions .  An
2067         expected use case will be for servers to provide subresource hints
2068         in link headers, which will allow servers to help make the web
2069         faster.
2070
2071         This feature continues my implementation of the Link header, which
2072         we've talked about in WebKit-dev in
2073         https://lists.webkit.org/pipermail/webkit-dev/2011-February/016034.html.
2074
2075         Tests: fast/dom/HTMLLinkElement/subresource.html
2076                http/tests/misc/link-rel-prefetch-and-subresource.html
2077
2078         * html/HTMLLinkElement.cpp:
2079         (WebCore::HTMLLinkElement::~HTMLLinkElement):
2080         (WebCore::HTMLLinkElement::tokenizeRelAttribute):
2081         (WebCore::HTMLLinkElement::process):
2082         (WebCore::HTMLLinkElement::onloadTimerFired):
2083         (WebCore::HTMLLinkElement::notifyFinished):
2084         * html/HTMLLinkElement.h:
2085         (WebCore::HTMLLinkElement::RelAttribute::RelAttribute):
2086         * loader/cache/CachedResource.cpp:
2087         (WebCore::defaultPriorityForResourceType):
2088         * loader/cache/CachedResource.h:
2089         (WebCore::CachedResource::isLinkResource):
2090         * loader/cache/CachedResourceLoader.cpp:
2091         (WebCore::createResource):
2092         (WebCore::CachedResourceLoader::requestLinkResource):
2093         (WebCore::CachedResourceLoader::canRequest):
2094         (WebCore::CachedResourceLoader::incrementRequestCount):
2095         (WebCore::CachedResourceLoader::decrementRequestCount):
2096         * loader/cache/CachedResourceLoader.h:
2097         * loader/cache/CachedResourceRequest.cpp:
2098         (WebCore::cachedResourceTypeToTargetType):
2099         (WebCore::CachedResourceRequest::load):
2100
2101 2011-04-17  Dan Bernstein  <mitz@apple.com>
2102
2103         Reviewed by Joseph Pecoraro.
2104
2105         <rdar://problem/9296211> REGRESSION (r83514): Failing fast/repaint/trailing-floats-root-line-box-overflow.html
2106         https://bugs.webkit.org/show_bug.cgi?id=58745
2107
2108         This is really a regression from r82611, but it went unnoticed due to a mistake in r73385,
2109         which was fixed in r83514.
2110
2111         * rendering/RenderBlockLineLayout.cpp:
2112         (WebCore::RenderBlock::layoutInlineChildren): Actually assign the bottom visual overflow to the
2113         variable so named, not the top layout overflow.
2114
2115 2011-04-17  Geoffrey Garen  <ggaren@apple.com>
2116
2117         Strongly suggested, but not necessarily reviewed, by
2118         Sam Weinig and Maciej Stachowiak.
2119
2120         Renamed DOMObject* => JSDOMWrapper*.
2121
2122         * bindings/js/DOMWrapperWorld.cpp:
2123         (WebCore::isObservable):
2124         (WebCore::DOMObjectHandleOwner::finalize):
2125         * bindings/js/DOMWrapperWorld.h:
2126         * bindings/js/JSArrayBufferViewHelper.h:
2127         (WebCore::toJSArrayBufferView):
2128         * bindings/js/JSCSSRuleCustom.cpp:
2129         (WebCore::toJS):
2130         * bindings/js/JSCSSValueCustom.cpp:
2131         (WebCore::toJS):
2132         * bindings/js/JSDOMBinding.h:
2133         (WebCore::JSDOMWrapperWithGlobalPointer::globalObject):
2134         (WebCore::JSDOMWrapperWithGlobalPointer::JSDOMWrapperWithGlobalPointer):
2135         (WebCore::DOMConstructorObject::DOMConstructorObject):
2136         (WebCore::createDOMObjectWrapper):
2137         (WebCore::getDOMObjectWrapper):
2138         * bindings/js/JSDOMWrapper.cpp:
2139         (WebCore::JSDOMWrapper::~JSDOMWrapper):
2140         * bindings/js/JSDOMWrapper.h:
2141         (WebCore::JSDOMWrapper::JSDOMWrapper):
2142         * bindings/js/JSDocumentCustom.cpp:
2143         (WebCore::JSDocument::location):
2144         (WebCore::toJS):
2145         * bindings/js/JSEventCustom.cpp:
2146         (WebCore::toJS):
2147         * bindings/js/JSHTMLCollectionCustom.cpp:
2148         (WebCore::toJS):
2149         * bindings/js/JSImageDataCustom.cpp:
2150         (WebCore::toJS):
2151         * bindings/js/JSSVGPathSegCustom.cpp:
2152         (WebCore::toJS):
2153         * bindings/js/JSStyleSheetCustom.cpp:
2154         (WebCore::toJS):
2155         * bindings/js/ScriptWrappable.h:
2156         (WebCore::ScriptWrappable::wrapper):
2157         (WebCore::ScriptWrappable::setWrapper):
2158         * bindings/scripts/CodeGeneratorJS.pm:
2159
2160 2011-04-17  Patrick Gansterer  <paroga@webkit.org>
2161
2162         Reviewed by Adam Barth.
2163
2164         Rename PLATFORM(CA) to USE(CA)
2165         https://bugs.webkit.org/show_bug.cgi?id=58742
2166
2167         * config.h:
2168         * platform/graphics/ca/TransformationMatrixCA.cpp:
2169         * platform/graphics/cg/ImageBufferDataCG.h:
2170         * platform/graphics/transforms/TransformationMatrix.h:
2171         * platform/mac/WebCoreSystemInterface.h:
2172         * rendering/RenderLayerBacking.cpp:
2173         (WebCore::RenderLayerBacking::containsPaintedContent):
2174         * rendering/RenderLayerCompositor.cpp:
2175         (WebCore::RenderLayerCompositor::updateBacking):
2176
2177 2011-04-17  Young Han Lee  <joybro@company100.net>
2178
2179         Reviewed by Benjamin Poulain.
2180
2181         [Texmap] [Qt] Improve readability by using gInVertexAttributeIndex instead of 0.
2182         https://bugs.webkit.org/show_bug.cgi?id=58739
2183
2184         gInVertexAttributeIndex is a constant variable to point the location of
2185         "InVertex" attribute of the vertex shaders.
2186
2187         * platform/graphics/opengl/TextureMapperGL.cpp:
2188         (WebCore::TextureMapperGL::drawTexture):
2189         (WebCore::TextureMapperGL::paintToTarget):
2190
2191 2011-04-17  Kinuko Yasuda  <kinuko@chromium.org>
2192
2193         Not reviewed: Fix copyright (I had submitted the file with wrong
2194         copyright line).
2195
2196         * storage/StorageInfo.idl:
2197
2198 2011-04-17  Patrick Gansterer  <paroga@webkit.org>
2199
2200         Reviewed by Adam Barth.
2201
2202         Rename PLATFORM(CG) to USE(CG)
2203         https://bugs.webkit.org/show_bug.cgi?id=58729
2204
2205         * config.h:
2206         * html/HTMLCanvasElement.cpp:
2207         (WebCore::HTMLCanvasElement::toDataURL):
2208         * html/HTMLCanvasElement.h:
2209         * html/canvas/CanvasRenderingContext2D.cpp:
2210         (WebCore::CanvasRenderingContext2D::setShadow):
2211         (WebCore::CanvasRenderingContext2D::drawTextInternal):
2212         * html/canvas/CanvasRenderingContext2D.h:
2213         * html/canvas/CanvasStyle.cpp:
2214         (WebCore::CanvasStyle::applyStrokeColor):
2215         (WebCore::CanvasStyle::applyFillColor):
2216         * loader/cache/CachedFont.cpp:
2217         * loader/cache/CachedImage.cpp:
2218         (WebCore::CachedImage::createImage):
2219         * platform/FloatConversion.h:
2220         * platform/MIMETypeRegistry.cpp:
2221         (WebCore::initializeSupportedImageMIMETypes):
2222         (WebCore::initializeSupportedImageMIMETypesForEncoding):
2223         * platform/graphics/BitmapImage.h:
2224         * platform/graphics/Color.h:
2225         * platform/graphics/DashArray.h:
2226         * platform/graphics/FloatPoint.h:
2227         * platform/graphics/FloatRect.h:
2228         * platform/graphics/FloatSize.h:
2229         * platform/graphics/FontPlatformData.h:
2230         (WebCore::FontPlatformData::FontPlatformData):
2231         (WebCore::FontPlatformData::hash):
2232         * platform/graphics/GlyphBuffer.h:
2233         (WebCore::GlyphBuffer::advanceAt):
2234         (WebCore::GlyphBuffer::add):
2235         (WebCore::GlyphBuffer::expandLastAdvance):
2236         * platform/graphics/Gradient.h:
2237         * platform/graphics/GraphicsContext.cpp:
2238         (WebCore::GraphicsContext::setLegacyShadow):
2239         * platform/graphics/GraphicsContext.h:
2240         (WebCore::GraphicsContextState::GraphicsContextState):
2241         * platform/graphics/GraphicsContext3D.h:
2242         * platform/graphics/Image.cpp:
2243         * platform/graphics/Image.h:
2244         * platform/graphics/ImageBuffer.cpp:
2245         * platform/graphics/ImageBuffer.h:
2246         * platform/graphics/ImageBufferData.h:
2247         * platform/graphics/ImageSource.h:
2248         * platform/graphics/IntPoint.h:
2249         * platform/graphics/IntRect.h:
2250         * platform/graphics/IntSize.h:
2251         * platform/graphics/Path.h:
2252         * platform/graphics/Pattern.h:
2253         * platform/graphics/SimpleFontData.h:
2254         * platform/graphics/cg/ColorCG.cpp:
2255         * platform/graphics/cg/FloatPointCG.cpp:
2256         * platform/graphics/cg/FloatRectCG.cpp:
2257         * platform/graphics/cg/FloatSizeCG.cpp:
2258         * platform/graphics/cg/ImageCG.cpp:
2259         * platform/graphics/cg/ImageSourceCG.cpp:
2260         * platform/graphics/cg/IntPointCG.cpp:
2261         * platform/graphics/cg/IntRectCG.cpp:
2262         * platform/graphics/cg/IntSizeCG.cpp:
2263         * platform/graphics/cg/PDFDocumentImage.cpp:
2264         * platform/graphics/cg/PDFDocumentImage.h:
2265         * platform/graphics/cg/PathCG.cpp:
2266         * platform/graphics/cg/TransformationMatrixCG.cpp:
2267         * platform/graphics/chromium/ImageLayerChromium.h:
2268         * platform/graphics/chromium/LayerRendererChromium.cpp:
2269         * platform/graphics/chromium/LayerRendererChromium.h:
2270         * platform/graphics/chromium/PlatformCanvas.cpp:
2271         (WebCore::PlatformCanvas::resize):
2272         (WebCore::PlatformCanvas::AutoLocker::AutoLocker):
2273         (WebCore::PlatformCanvas::Painter::Painter):
2274         * platform/graphics/chromium/PlatformCanvas.h:
2275         * platform/graphics/chromium/PlatformImage.cpp:
2276         (WebCore::PlatformImage::updateFromImage):
2277         * platform/graphics/opentype/OpenTypeUtilities.cpp:
2278         * platform/graphics/transforms/AffineTransform.h:
2279         * platform/graphics/transforms/TransformationMatrix.h:
2280         * platform/graphics/win/DIBPixelData.h:
2281         * platform/graphics/win/FontCacheWin.cpp:
2282         (WebCore::FontCache::platformInit):
2283         (WebCore::createGDIFont):
2284         (WebCore::FontCache::createFontPlatformData):
2285         * platform/graphics/win/FontPlatformDataWin.cpp:
2286         (WebCore::FontPlatformData::FontPlatformData):
2287         * platform/graphics/win/GraphicsContextWin.cpp:
2288         * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp:
2289         * platform/graphics/win/SimpleFontDataWin.cpp:
2290         * platform/image-decoders/ImageDecoder.cpp:
2291         * platform/image-decoders/ImageDecoder.h:
2292         * rendering/RenderObject.h:
2293         * rendering/svg/RenderSVGResourceFilter.cpp:
2294         (WebCore::RenderSVGResourceFilter::postApplyResource):
2295         * rendering/svg/RenderSVGResourceGradient.cpp:
2296         (WebCore::RenderSVGResourceGradient::RenderSVGResourceGradient):
2297         (WebCore::RenderSVGResourceGradient::applyResource):
2298         * rendering/svg/RenderSVGResourceGradient.h:
2299         * rendering/svg/RenderSVGResourceMasker.cpp:
2300         (WebCore::RenderSVGResourceMasker::drawContentIntoMaskImage):
2301         * rendering/svg/RenderSVGResourcePattern.cpp:
2302         (WebCore::RenderSVGResourcePattern::applyResource):
2303
2304 2011-04-16  Adam Barth  <abarth@webkit.org>
2305
2306         Reviewed by Sam Weinig.
2307
2308         about:blank documents in new tabs can XHR anywhere
2309         https://bugs.webkit.org/show_bug.cgi?id=58712
2310
2311         Empty security origins have supposed to be low-privilege, we should
2312         mark them as having a unique origin.
2313
2314         * manual-tests/about-blank-xhr.html: Added.
2315         * page/SecurityOrigin.cpp:
2316         (WebCore::SecurityOrigin::SecurityOrigin):
2317         * page/SecurityOrigin.h:
2318
2319 2011-04-16  Dan Bernstein  <mitz@apple.com>
2320
2321         Reviewed by Simon Fraser.
2322
2323         <rdar://problem/9190108> Crash when hiding a float
2324
2325         Test: fast/block/float/overhanging-tall-block.html
2326
2327         * rendering/RenderBlock.cpp:
2328         (WebCore::RenderBlock::addOverhangingFloats): Moved the call to childLogicalTop() out of the loop.
2329         Capped the logical bottom so that we get the correct maximum.
2330         * rendering/RenderBlock.h: Decleared appendFloatingObjectToLastLine().
2331         * rendering/RenderBlockLineLayout.cpp:
2332         (WebCore::RenderBlock::appendFloatingObjectToLastLine): Added. Ensures correct bookkeeping by
2333         extending the float if needed so that it touches the line.
2334         (WebCore::RenderBlock::layoutInlineChildren): Changed to call appendFloatingObjectToLastLine().
2335         (WebCore::RenderBlock::checkFloatsInCleanLine): Capped the float height so the we mark the right
2336         range of lines as dirty.
2337         * rendering/RootInlineBox.h:
2338         (WebCore::RootInlineBox::appendFloat): Replaced the floats() accessor with this function, which
2339         allows the creation of the vector to be combined with appending the first float.
2340
2341 2011-04-16  Sam Weinig  <sam@webkit.org>
2342
2343         Reviewed by Simon Fraser.
2344
2345         Pages in the PageCache don't have the correct visited link coloring after being restored
2346         https://bugs.webkit.org/show_bug.cgi?id=58721
2347
2348         * WebCore.exp.in:
2349         Add export of markPagesForVistedLinkStyleRecalc for use by WebKit2.
2350
2351         * history/CachedPage.cpp:
2352         (WebCore::CachedPage::CachedPage):
2353         (WebCore::CachedPage::restore):
2354         (WebCore::CachedPage::clear):
2355         * history/CachedPage.h:
2356         (WebCore::CachedPage::markForVistedLinkStyleRecalc):
2357         Add bit, set by calling markForVistedLinkStyleRecalc, which forces a visited link
2358         style recalc when being restored.
2359
2360         * history/PageCache.h:
2361         * history/PageCache.cpp:
2362         (WebCore::PageCache::markPagesForVistedLinkStyleRecalc):
2363         Mark all pages in the page cache as requiring visited link style recalc.
2364
2365         * page/PageGroup.cpp:
2366         (WebCore::PageGroup::addVisitedLink):
2367         (WebCore::PageGroup::removeVisitedLinks):
2368         (WebCore::PageGroup::removeAllVisitedLinks):
2369         Set dirty bit when changing any visited link information.
2370         
2371
2372 2011-04-16  Leo Yang  <leoyang.webkit@gmail.com>
2373
2374         Reviewed by Nikolas Zimmermann.
2375
2376         ASSERT failure when svg <use> element changes href
2377         https://bugs.webkit.org/show_bug.cgi?id=58726
2378
2379         m_resourceId was not empty after the pending resource
2380         becomes available. This will trigger the assertion at
2381         line 509 of SVGUseElement.cpp when the <use> element's
2382         href becomes empty or invalid.
2383
2384         This patch makes m_resourceId be empty after the pending
2385         resource becomes available to avoid assertion failure.
2386
2387         Test: svg/custom/use-crash-when-href-change.svg
2388
2389         * svg/SVGUseElement.cpp:
2390         (WebCore::SVGUseElement::buildPendingResource):
2391
2392 2011-04-16  Patrick Gansterer  <paroga@webkit.org>
2393
2394         Reviewed by Eric Seidel.
2395
2396         Rename PLATFORM(CAIRO) to USE(CAIRO)
2397         https://bugs.webkit.org/show_bug.cgi?id=55192
2398
2399         * CMakeListsEfl.txt:
2400         * config.h:
2401         * platform/MIMETypeRegistry.cpp:
2402         (WebCore::initializeSupportedImageMIMETypesForEncoding):
2403         * platform/graphics/ContextShadow.h:
2404         * platform/graphics/DashArray.h:
2405         * platform/graphics/FloatRect.h:
2406         * platform/graphics/FontPlatformData.h:
2407         (WebCore::FontPlatformData::FontPlatformData):
2408         (WebCore::FontPlatformData::hash):
2409         (WebCore::FontPlatformData::isHashTableDeletedValue):
2410         * platform/graphics/GlyphBuffer.h:
2411         (WebCore::GlyphBuffer::glyphAt):
2412         (WebCore::GlyphBuffer::add):
2413         * platform/graphics/Gradient.cpp:
2414         * platform/graphics/Gradient.h:
2415         * platform/graphics/GraphicsContext.cpp:
2416         * platform/graphics/GraphicsContext.h:
2417         (WebCore::GraphicsContextState::GraphicsContextState):
2418         * platform/graphics/GraphicsContext3D.h:
2419         * platform/graphics/ImageBufferData.h:
2420         * platform/graphics/ImageSource.h:
2421         * platform/graphics/Path.h:
2422         * platform/graphics/Pattern.h:
2423         * platform/graphics/SimpleFontData.h:
2424         * platform/graphics/cairo/DrawErrorUnderline.h:
2425         * platform/graphics/cairo/GraphicsContextCairo.cpp:
2426         * platform/graphics/cairo/ImageCairo.cpp:
2427         * platform/graphics/gstreamer/ImageGStreamer.h:
2428         * platform/graphics/transforms/AffineTransform.h:
2429         * platform/graphics/transforms/TransformationMatrix.h:
2430         * platform/graphics/win/FontCacheWin.cpp:
2431         (WebCore::createGDIFont):
2432         (WebCore::FontCache::createFontPlatformData):
2433         * platform/graphics/win/FontPlatformDataWin.cpp:
2434         (WebCore::FontPlatformData::FontPlatformData):
2435         * platform/graphics/win/GraphicsContextWin.cpp:
2436         * plugins/win/PluginViewWin.cpp:
2437         (WebCore::PluginView::paintWindowedPluginIntoContext):
2438         * rendering/RenderObject.h:
2439
2440 2011-04-16  Patrick Gansterer  <paroga@webkit.org>
2441
2442         Unreviewed WinCE build fix for r84033.
2443
2444         * platform/win/LocalizedStringsWin.cpp:
2445         (WebCore::localizedString):
2446
2447 2011-04-16  Abhishek Arya  <inferno@chromium.org>
2448
2449         Reviewed by Nikolas Zimmermann.
2450
2451         Only allow inline child for SVG text since we cannot
2452         handle block childs.
2453         https://bugs.webkit.org/show_bug.cgi?id=58678
2454
2455         Test: svg/text/text-block-child-crash.xhtml
2456
2457         * rendering/svg/RenderSVGText.cpp:
2458         (WebCore::RenderSVGText::isChildAllowed):
2459         * rendering/svg/RenderSVGText.h:
2460
2461 2011-04-15  Ilya Tikhonovsky  <loislo@chromium.org>
2462
2463         Reviewed by Pavel Feldman.
2464
2465         Web Inspector: The list of Database entries is empty if the page opens a database just before Web Inspector.
2466         https://bugs.webkit.org/show_bug.cgi?id=57833
2467
2468         * inspector/Inspector.json:
2469         * inspector/InspectorDatabaseAgent.cpp:
2470         (WebCore::InspectorDatabaseAgent::didOpenDatabase):
2471         (WebCore::InspectorDatabaseAgent::InspectorDatabaseAgent):
2472         (WebCore::InspectorDatabaseAgent::setFrontend):
2473         (WebCore::InspectorDatabaseAgent::clearFrontend):
2474         (WebCore::InspectorDatabaseAgent::enable):
2475         (WebCore::InspectorDatabaseAgent::disable):
2476         (WebCore::InspectorDatabaseAgent::getDatabaseTableNames):
2477         (WebCore::InspectorDatabaseAgent::executeSQL):
2478         * inspector/InspectorDatabaseAgent.h:
2479         * inspector/front-end/inspector.js:
2480
2481 2011-04-15  Adam Barth  <abarth@webkit.org>
2482
2483         Reviewed by Eric Seidel.
2484
2485         CSP media-src is missing
2486         https://bugs.webkit.org/show_bug.cgi?id=58642
2487
2488         Yay HTMLMediaElement for having the exact hook we need!
2489
2490         Tests: http/tests/security/contentSecurityPolicy/media-src-allowed.html
2491                http/tests/security/contentSecurityPolicy/media-src-blocked.html
2492
2493         * html/HTMLMediaElement.cpp:
2494         (WebCore::HTMLMediaElement::isSafeToLoadURL):
2495             - Although it's tempting to add this branch to the previous
2496               if-block, that results in the wrong error message being logged to
2497               the console (covered by the "blocked" test).
2498         * page/ContentSecurityPolicy.cpp:
2499         (WebCore::ContentSecurityPolicy::allowMediaFromSource):
2500         (WebCore::ContentSecurityPolicy::addDirective):
2501         * page/ContentSecurityPolicy.h:
2502             - These changes are routine.
2503
2504 2011-04-15  Adam Barth  <abarth@webkit.org>
2505
2506         Reviewed by Eric Seidel.
2507
2508         CSP should block string arguments to setTimeout and setInterval unless options eval-script
2509         https://bugs.webkit.org/show_bug.cgi?id=58610
2510
2511         It's somewhat sadness that the JSC and V8 code for setTimeout and
2512         setInterval are so different.  I struggled for a while with how to
2513         handle the worker case, but I decided to punt on it for now.
2514
2515         Tests: http/tests/security/contentSecurityPolicy/eval-scripts-setInterval-allowed.html
2516                http/tests/security/contentSecurityPolicy/eval-scripts-setInterval-blocked.html
2517                http/tests/security/contentSecurityPolicy/eval-scripts-setTimeout-allowed.html
2518                http/tests/security/contentSecurityPolicy/eval-scripts-setTimeout-blocked.html
2519
2520         * bindings/js/JSDOMWindowCustom.cpp:
2521         (WebCore::JSDOMWindow::setTimeout):
2522         (WebCore::JSDOMWindow::setInterval):
2523         * bindings/js/JSWorkerContextCustom.cpp:
2524         (WebCore::JSWorkerContext::setTimeout):
2525         (WebCore::JSWorkerContext::setInterval):
2526         * bindings/js/ScheduledAction.cpp:
2527         (WebCore::ScheduledAction::create):
2528         * bindings/js/ScheduledAction.h:
2529         * bindings/v8/custom/V8DOMWindowCustom.cpp:
2530         (WebCore::WindowSetTimeoutImpl):
2531         * page/ContentSecurityPolicy.cpp:
2532         (WebCore::ContentSecurityPolicy::allowEval):
2533         * page/ContentSecurityPolicy.h:
2534
2535 2011-04-15  Shishir Agrawal  <shishir@chromium.org>
2536
2537         Reviewed by James Robinson.
2538
2539         Add a flag to guard Page Visibility API changes.
2540         https://bugs.webkit.org/show_bug.cgi?id=58464
2541
2542         * Configurations/FeatureDefines.xcconfig:
2543
2544 2011-04-15  Fridrich Strba  <fridrich.strba@bluewin.ch>
2545
2546         Reviewed by Martin Robinson.
2547
2548         Make plugins compile during WebKit GTK Windows build.
2549         Ifdef properly relevant parts so that the PluginViewGtk compiles on Windows.
2550         https://bugs.webkit.org/show_bug.cgi?id=58580
2551
2552         * plugins/PluginView.cpp:
2553         (WebCore::PluginView::stop):
2554         * plugins/PluginView.h:
2555         * plugins/gtk/PluginViewGtk.cpp:
2556         (WebCore::PluginView::platformGetValue):
2557         (WebCore::PluginView::platformStart):
2558
2559 2011-04-15  MORITA Hajime  <morrita@google.com>
2560
2561         Reviewed by Simon Fraser.
2562
2563         Calls to WebCore::Document::mayCauseFlashOfUnstyledContent make frequently-run drawing methods slower
2564         https://bugs.webkit.org/show_bug.cgi?id=58512
2565         
2566         Manually rolled out r72367 at which mayCauseFlashOfUnstyledContent() was introduced.
2567         This change keeps an small refactoring on
2568         FrameView::shouldUpdate(), which doesn't affect on the behavior.
2569
2570         * dom/Document.cpp:
2571         * dom/Document.h:
2572         * page/FrameView.cpp:
2573         (WebCore::FrameView::invalidateRect):
2574         (WebCore::FrameView::shouldUpdate):
2575         * rendering/RenderBlock.cpp:
2576         (WebCore::RenderBlock::paintContents):
2577         * rendering/RenderLayer.cpp:
2578         (WebCore::RenderLayer::paintLayer):
2579
2580 2011-04-15  Chris Rogers  <crogers@google.com>
2581
2582         Reviewed by Kenneth Russell.
2583
2584         Reduce default kernel size of SincResampler to favor better speed over quality
2585         https://bugs.webkit.org/show_bug.cgi?id=58710
2586
2587         No new tests since audio API is not yet implemented.
2588
2589         * platform/audio/SincResampler.h:
2590
2591 2011-04-15  Fridrich Strba  <fridrich.strba@bluewin.ch>
2592
2593         Reviewed by Martin Robinson.
2594
2595         Expand the ntohs, ntohl, htons and htonl defines for OS(WINDOWS)
2596         These have to be defined for Windows in general, since win32 API
2597         does not provide them.
2598         https://bugs.webkit.org/show_bug.cgi?id=58582
2599
2600         * platform/graphics/WOFFFileFormat.cpp:
2601
2602 2011-04-15  Vsevolod Vlasov  <vsevik@chromium.org>
2603
2604         Reviewed by Adam Barth.
2605
2606         Show a console message when X-Frame-Options blocks a load
2607         https://bugs.webkit.org/show_bug.cgi?id=39087
2608
2609         Added console message when X-Frame-Options headers block resource loading
2610
2611         * loader/MainResourceLoader.cpp:
2612         (WebCore::MainResourceLoader::didReceiveResponse):
2613
2614 2011-04-15  Fridrich Strba  <fridrich.strba@bluewin.ch>
2615
2616         Reviewed by Martin Robinson.
2617
2618         Evaluate PLATFORM(GTK) before the all-encompassing OS(WINDOWS)
2619         test. This allows Windows build of WebKit GTK to chose the right
2620         path.
2621         https://bugs.webkit.org/show_bug.cgi?id=58576
2622
2623         * platform/FileSystem.h:
2624
2625 2011-04-08  Luiz Agostini  <luiz.agostini@openbossa.org>
2626
2627         Reviewed by Kenneth Rohde Christiansen.
2628
2629         [Qt] QWebPage MIME type handling inconsistency with other web browsers
2630         https://bugs.webkit.org/show_bug.cgi?id=46968
2631
2632         Implementing mime type sniffing based on
2633         http://tools.ietf.org/html/draft-abarth-mime-sniff-06.
2634
2635         * WebCore.pro:
2636         * platform/network/MIMESniffing.cpp: Added.
2637         (MagicNumbers::dataSizeNeededForImageSniffing):
2638         (MagicNumbers::maskedCompare):
2639         (MagicNumbers::checkSpaceOrBracket):
2640         (MagicNumbers::compare):
2641         (MagicNumbers::findMIMEType):
2642         (MagicNumbers::findSimpleMIMEType):
2643         (MagicNumbers::textOrBinaryTypeSniffingProcedure):
2644         (MagicNumbers::unknownTypeSniffingProcedure):
2645         (MagicNumbers::imageTypeSniffingProcedure):
2646         (MagicNumbers::checkText):
2647         (MagicNumbers::checkRDF):
2648         (MagicNumbers::skipTag):
2649         (MagicNumbers::feedTypeSniffingProcedure):
2650         (MIMESniffer::MIMESniffer):
2651         * platform/network/MIMESniffing.h: Added.
2652         (MIMESniffer::dataSize):
2653         (MIMESniffer::sniff):
2654         (MIMESniffer::isValid):
2655         * platform/network/NetworkingContext.h:
2656         * platform/network/qt/QNetworkReplyHandler.cpp:
2657         (WebCore::QNetworkReplyWrapper::QNetworkReplyWrapper):
2658         (WebCore::QNetworkReplyWrapper::release):
2659         (WebCore::QNetworkReplyWrapper::receiveMetaData):
2660         (WebCore::QNetworkReplyWrapper::receiveSniffedMIMEType):
2661         (WebCore::QNetworkReplyWrapper::emitMetaDataChanged):
2662         (WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
2663         (WebCore::QNetworkReplyHandler::sendNetworkRequest):
2664         (WebCore::QNetworkReplyHandler::start):
2665         * platform/network/qt/QNetworkReplyHandler.h:
2666         (WebCore::QNetworkReplyWrapper::advertisedMIMEType):
2667         (WebCore::QNetworkReplyWrapper::mimeType):
2668         * platform/network/qt/QtMIMETypeSniffer.cpp: Added.
2669         (QtMIMETypeSniffer::QtMIMETypeSniffer):
2670         (QtMIMETypeSniffer::sniff):
2671         (QtMIMETypeSniffer::trySniffing):
2672         * platform/network/qt/QtMIMETypeSniffer.h: Added.
2673         (QtMIMETypeSniffer::mimeType):
2674         (QtMIMETypeSniffer::isFinished):
2675
2676 2011-04-15  Emil A Eklund  <eae@chromium.org>
2677
2678         Reviewed by Dimitri Glazkov.
2679
2680         input field with focus makes appendChild operation ~42x slower
2681         https://bugs.webkit.org/show_bug.cgi?id=57059
2682
2683         Change ContainerNode::cloneChildNodes to only disable the
2684         deleteButtonController if the container itself (or any of its children)
2685         is being edited. Thus avoiding a reflow in cases where it's not.
2686
2687         Test: perf/clone-with-focus.html
2688
2689         * dom/ContainerNode.cpp:
2690         (WebCore::ContainerNode::cloneChildNodes):
2691
2692 2011-04-15  Kinuko Yasuda  <kinuko@chromium.org>
2693
2694         Reviewed by David Levin.
2695
2696         Expose unified Quota API if QUOTA build flag is enabled
2697         https://bugs.webkit.org/show_bug.cgi?id=58648
2698
2699         Test: storage/storageinfo-query-usage.html
2700
2701         * CMakeLists.txt: Added new file entries.
2702         * DerivedSources.cpp: Added new file entries.
2703         * DerivedSources.make: Added new file entries.
2704         * GNUmakefile.am: Added new file entries.
2705         * WebCore.gypi: Added new file entries.
2706         * WebCore.vcproj/WebCore.vcproj: Added new file entries.
2707         * WebCore.xcodeproj/project.pbxproj: Added new file entries.
2708         * page/DOMWindow.cpp:
2709         (WebCore::DOMWindow::webkitStorageInfo): Added.
2710         * page/DOMWindow.h:
2711         * page/DOMWindow.idl:
2712         * storage/StorageInfo.h: Added storage type enum.
2713         * storage/StorageInfo.idl: Added.
2714         * storage/StorageInfoErrorCallback.idl: Added.
2715         * storage/StorageInfoUsageCallback.idl: Added.
2716
2717 2011-04-15  Oliver Hunt  <oliver@apple.com>
2718
2719         GC allocate Structure
2720         https://bugs.webkit.org/show_bug.cgi?id=58483
2721
2722         Rolling r83894 r83827 r83810 r83809 r83808 back in with
2723         a workaround for the gcc bug seen by the gtk bots
2724
2725         * WebCore.exp.in:
2726         * bindings/js/JSAudioConstructor.h:
2727         (WebCore::JSAudioConstructor::createStructure):
2728         * bindings/js/JSDOMBinding.cpp:
2729         (WebCore::cacheDOMStructure):
2730         * bindings/js/JSDOMBinding.h:
2731         (WebCore::DOMObjectWithGlobalPointer::createStructure):
2732         (WebCore::DOMObjectWithGlobalPointer::DOMObjectWithGlobalPointer):
2733         (WebCore::DOMConstructorObject::createStructure):
2734         (WebCore::DOMConstructorObject::DOMConstructorObject):
2735         (WebCore::DOMConstructorWithDocument::DOMConstructorWithDocument):
2736         * bindings/js/JSDOMGlobalObject.cpp:
2737         (WebCore::JSDOMGlobalObject::JSDOMGlobalObject):
2738         (WebCore::JSDOMGlobalObject::markChildren):
2739         * bindings/js/JSDOMGlobalObject.h:
2740         (WebCore::JSDOMGlobalObject::createStructure):
2741         * bindings/js/JSDOMWindowBase.cpp:
2742         (WebCore::JSDOMWindowBase::JSDOMWindowBase):
2743         * bindings/js/JSDOMWindowBase.h:
2744         (WebCore::JSDOMWindowBase::createStructure):
2745         * bindings/js/JSDOMWindowShell.cpp:
2746         (WebCore::JSDOMWindowShell::JSDOMWindowShell):
2747         (WebCore::JSDOMWindowShell::setWindow):
2748         * bindings/js/JSDOMWindowShell.h:
2749         (WebCore::JSDOMWindowShell::createStructure):
2750         * bindings/js/JSDOMWrapper.h:
2751         (WebCore::DOMObject::DOMObject):
2752         * bindings/js/JSEventListener.cpp:
2753         (WebCore::JSEventListener::JSEventListener):
2754         * bindings/js/JSImageConstructor.h:
2755         (WebCore::JSImageConstructor::createStructure):
2756         * bindings/js/JSImageDataCustom.cpp:
2757         (WebCore::toJS):
2758         * bindings/js/JSOptionConstructor.h:
2759         (WebCore::JSOptionConstructor::createStructure):
2760         * bindings/js/JSWorkerContextBase.cpp:
2761         (WebCore::JSWorkerContextBase::JSWorkerContextBase):
2762         * bindings/js/JSWorkerContextBase.h:
2763         (WebCore::JSWorkerContextBase::createStructure):
2764         * bindings/js/ScriptCachedFrameData.h:
2765         * bindings/js/SerializedScriptValue.h:
2766         * bindings/js/WorkerScriptController.cpp:
2767         (WebCore::WorkerScriptController::~WorkerScriptController):
2768         (WebCore::WorkerScriptController::initScript):
2769         * bindings/scripts/CodeGeneratorJS.pm:
2770         * bridge/c/CRuntimeObject.h:
2771         (JSC::Bindings::CRuntimeObject::createStructure):
2772         * bridge/c/c_instance.cpp:
2773         (JSC::Bindings::CRuntimeMethod::createStructure):
2774         * bridge/jni/jsc/JavaInstanceJSC.cpp:
2775         (JavaRuntimeMethod::createStructure):
2776         * bridge/jni/jsc/JavaRuntimeObject.h:
2777         (JSC::Bindings::JavaRuntimeObject::createStructure):
2778         * bridge/objc/ObjCRuntimeObject.h:
2779         (JSC::Bindings::ObjCRuntimeObject::createStructure):
2780         * bridge/objc/objc_instance.mm:
2781         (ObjCRuntimeMethod::createStructure):
2782         * bridge/objc/objc_runtime.h:
2783         (JSC::Bindings::ObjcFallbackObjectImp::createStructure):
2784         * bridge/qt/qt_instance.cpp:
2785         (JSC::Bindings::QtRuntimeObject::createStructure):
2786         * bridge/qt/qt_pixmapruntime.cpp:
2787         (JSC::Bindings::QtPixmapRuntimeObject::createStructure):
2788         * bridge/qt/qt_runtime.h:
2789         (JSC::Bindings::QtRuntimeMethod::createStructure):
2790         * bridge/runtime_array.cpp:
2791         (JSC::RuntimeArray::RuntimeArray):
2792         * bridge/runtime_array.h:
2793         (JSC::RuntimeArray::createStructure):
2794         * bridge/runtime_method.cpp:
2795         (JSC::RuntimeMethod::RuntimeMethod):
2796         * bridge/runtime_method.h:
2797         (JSC::RuntimeMethod::createStructure):
2798         * bridge/runtime_object.cpp:
2799         (JSC::Bindings::RuntimeObject::RuntimeObject):
2800         * bridge/runtime_object.h:
2801         (JSC::Bindings::RuntimeObject::createStructure):
2802         * history/HistoryItem.h:
2803
2804 2011-04-15  Jessie Berlin  <jberlin@apple.com>
2805
2806         Reviewed by Brian Weinstein.
2807
2808         Hang underneath ApplicationCacheStorage::writeDataToUniqueFileInDirectory when loading
2809         http://www.webkit.org/demos/calendar.
2810         https://bugs.webkit.org/show_bug.cgi?id=58698
2811
2812         * platform/win/FileSystemWin.cpp:
2813         (WebCore::openFile):
2814         Add breaks to the case statement.
2815         (WebCore::directoryName):
2816         Remove any trailing slash in directoryName. After closer inspection of all callers, it
2817         appears the that callers do not need the trailing slash, and those that use the length do
2818         so only to change the direction of the slashes throughout the length of the path.
2819
2820 2011-04-15  Roland Steiner  <rolandsteiner@chromium.org>
2821
2822         Reviewed by Dimitri Glazkov.
2823
2824         Bug 52963 - Enable O(1) access to root from any node in shadow DOM subtree
2825         https://bugs.webkit.org/show_bug.cgi?id=52963
2826
2827         .) Change base class of ShadowRoot from DocumentFragment to TreeScope.
2828         .) Re-enable tree scope handling in Node (had ASSERT_NOT_REACHED, etc.).
2829         .) Merged setTreeScope() with setTreeScopeRecursively()
2830         .) Call setTreeScopeRecursively in DOM manipulation functions where applicable.
2831
2832         No new tests. (refactoring)
2833
2834         * dom/ContainerNode.cpp:
2835         (WebCore::ContainerNode::takeAllChildrenFrom):
2836         (WebCore::ContainerNode::removeBetween):
2837         (WebCore::ContainerNode::removeChildren):
2838         (WebCore::ContainerNode::parserAddChild):
2839         * dom/Document.cpp:
2840         (WebCore::Document::Document):
2841         (WebCore::Document::~Document):
2842         (WebCore::Document::setDocType):
2843         * dom/Element.h:
2844         * dom/Node.cpp:
2845         (WebCore::Node::treeScope):
2846         (WebCore::Node::setTreeScopeRecursively):
2847         * dom/Node.h:
2848         (WebCore::Node::document):
2849         * dom/ShadowRoot.cpp:
2850         (WebCore::ShadowRoot::ShadowRoot):
2851         (WebCore::ShadowRoot::~ShadowRoot):
2852         (WebCore::ShadowRoot::nodeType):
2853         (WebCore::ShadowRoot::cloneNode):
2854         (WebCore::ShadowRoot::childTypeAllowed):
2855         * dom/ShadowRoot.h:
2856         (WebCore::toShadowRoot):
2857         * dom/TreeScope.cpp:
2858         (WebCore::TreeScope::TreeScope):
2859         (WebCore::TreeScope::setParentTreeScope):
2860         * dom/TreeScope.h:
2861         * rendering/RenderSlider.cpp:
2862
2863 2011-04-15  Geoffrey Garen  <ggaren@apple.com>
2864
2865         Reviewed by Oliver Hunt.
2866
2867         DOM object handles are never removed from cache
2868         https://bugs.webkit.org/show_bug.cgi?id=58707
2869
2870         We were trying to remove hash table items by value instead of by key.
2871
2872         * bindings/js/DOMWrapperWorld.cpp:
2873         (WebCore::JSNodeHandleOwner::finalize): Changed to work more like
2874         DOMObjectHandleOwner::finalize because I'm going to merge them.
2875
2876         (WebCore::DOMObjectHandleOwner::finalize): Remove hash table items
2877         by key, not value. (Oops!) Use a helper function to make sure we get
2878         this right.
2879
2880         * bindings/js/JSDOMBinding.cpp:
2881         (WebCore::cacheDOMObjectWrapper): Store the hash table key as our weak
2882         handle context, so we can use it at destruction time.
2883
2884         * bindings/js/JSDOMBinding.h: Removed unnecessary include.
2885
2886         * bindings/js/JSNodeCustom.h:
2887         (WebCore::cacheDOMNodeWrapper): Store the hash table key as our weak
2888         handle context, so we can use it at destruction time.
2889
2890         * bindings/js/ScriptWrappable.h:
2891         (WebCore::ScriptWrappable::setWrapper): Forward context parameter, to
2892         support the above.
2893
2894 2011-04-15  Kenneth Russell  <kbr@google.com>
2895
2896         Unreviewed. Chromium Linux Release build fix due to unused variables.
2897
2898         * platform/audio/mkl/FFTFrameMKL.cpp:
2899         (WebCore::FFTFrame::doFFT):
2900         (WebCore::FFTFrame::doInverseFFT):
2901         (WebCore::FFTFrame::cleanup):
2902
2903 2011-04-15  Brent Fulgham  <bfulgham@webkit.org>
2904
2905         Unreviewed build change after r83945.
2906
2907         New 'PlatformPathCairo.cpp' was not added to the WinCairo build.
2908
2909         * WebCore.vcproj/WebCore.vcproj: Add missing file to WinCairo
2910           build.  Exclude for standard Apple build.
2911
2912 2011-04-15  Anders Carlsson  <andersca@apple.com>
2913
2914         Reviewed by Dan Bernstein.
2915
2916         Fade the find page overlay
2917         https://bugs.webkit.org/show_bug.cgi?id=58697
2918
2919         Add a symbol that WebKit2 needs.
2920
2921         * WebCore.exp.in:
2922
2923 2011-04-15  MORITA Hajime  <morrita@google.com>
2924
2925         Reviewed by Dimitri Glazkov.
2926
2927         RenderDetailsMarker should belong to shadow element.
2928         https://bugs.webkit.org/show_bug.cgi?id=58591
2929
2930         - Introduced DetailsMarkerControl element, which is a shadow element of <summary>, creates RenderDetailsMarker.
2931         - Removed custom layout code from RenderDetails, RenderDetailsMarker, which is now done by usual CSS layout.
2932           Note that marker size is given via style for -webkit-details-marker pseudo class.
2933         - Converted default summary implementation from pure-renderer style to shadow of HTMLDetailsElement.
2934           Now RenderDetails knows nothing about default summary.
2935         - Moved event handling code from HTMLDetailsElement to HTMLSummaryElement because now the marker is always child of 
2936           <summary>, and the clickable area is now <summary> itself.
2937
2938         - Note that the rendering result is changed due to the conversion from custom layout code to usual CSS styling.
2939
2940         * Android.mk:
2941         * CMakeLists.txt:
2942         * GNUmakefile.list.am:
2943         * WebCore.gypi:
2944         * WebCore.pro:
2945         * WebCore.vcproj/WebCore.vcproj:
2946         * WebCore.xcodeproj/project.pbxproj:
2947         * css/html.css:
2948         (summary::-webkit-details-marker):
2949         * dom/Element.cpp:
2950         (WebCore::Element::attach):
2951         * dom/Node.cpp:
2952         (WebCore::shouldCreateRendererFor):
2953         * dom/Node.h:
2954         (WebCore::Node::canHaveLightChildRendererWithShadow):
2955         * html/HTMLDetailsElement.cpp:
2956         (WebCore::HTMLDetailsElement::findSummaryFor):
2957         (WebCore::HTMLDetailsElement::findMainSummary):
2958         (WebCore::HTMLDetailsElement::refreshMainSummary):
2959         (WebCore::HTMLDetailsElement::createShadowSubtree):
2960         (WebCore::HTMLDetailsElement::childrenChanged):
2961         (WebCore::HTMLDetailsElement::finishParsingChildren):
2962         (WebCore::HTMLDetailsElement::toggleOpen):
2963         * html/HTMLDetailsElement.h:
2964         (WebCore::HTMLDetailsElement::canHaveLightChildRendererWithShadow):
2965         * html/HTMLSummaryElement.cpp:
2966         (WebCore::HTMLSummaryElement::create):
2967         (WebCore::HTMLSummaryElement::createShadowSubtree):
2968         (WebCore::HTMLSummaryElement::detailsElement):
2969         (WebCore::HTMLSummaryElement::isMainSummary):
2970         (WebCore::HTMLSummaryElement::defaultEventHandler):
2971         * html/HTMLSummaryElement.h:
2972         (WebCore::HTMLSummaryElement::canHaveLightChildRendererWithShadow):
2973         * html/shadow/DetailsMarkerControl.cpp: Added.
2974         (WebCore::DetailsMarkerControl::DetailsMarkerControl):
2975         (WebCore::DetailsMarkerControl::createRenderer):
2976         (WebCore::DetailsMarkerControl::rendererIsNeeded):
2977         (WebCore::DetailsMarkerControl::shadowPseudoId):
2978         (WebCore::DetailsMarkerControl::summaryElement):
2979         * html/shadow/DetailsMarkerControl.h: Added.
2980         (WebCore::DetailsMarkerControl::create):
2981         * rendering/RenderDetails.cpp:
2982         (WebCore::RenderDetails::RenderDetails):
2983         (WebCore::RenderDetails::styleDidChange):
2984         (WebCore::RenderDetails::moveSummaryToContents):
2985         (WebCore::RenderDetails::checkMainSummary):
2986         (WebCore::RenderDetails::layout):
2987         * rendering/RenderDetails.h:
2988         * rendering/RenderDetailsMarker.cpp:
2989         (WebCore::RenderDetailsMarker::RenderDetailsMarker):
2990         (WebCore::RenderDetailsMarker::isOpen):
2991         (WebCore::RenderDetailsMarker::getPath):
2992         (WebCore::RenderDetailsMarker::paint):
2993         (WebCore::RenderDetailsMarker::details):
2994         * rendering/RenderDetailsMarker.h:
2995
2996 2011-04-15  Sam Weinig  <sam@webkit.org>
2997
2998         Reviewed by Adam Roben.
2999
3000         Implement localize strings for windows WebKit2
3001         https://bugs.webkit.org/show_bug.cgi?id=58688
3002
3003         * platform/win/LocalizedStringsWin.cpp:
3004         (WebCore::createWebKitBundle):
3005         (WebCore::webKitBundle):
3006         (WebCore::localizedString):
3007         Add implementation of localizedString for Windows.
3008
3009 2011-04-15  Geoffrey Garen  <ggaren@apple.com>
3010
3011         Reviewed by Oliver Hunt.
3012
3013         Some mechanical DOM wrapper cleanup
3014         https://bugs.webkit.org/show_bug.cgi?id=58689
3015
3016         * WebCore.exp.in: Export!
3017
3018         * bindings/js/DOMWrapperWorld.cpp:
3019         (WebCore::isReachableFromDOM): Inverted the inDocument test to make the
3020         relationship of the special cases to the normal case clearer.
3021
3022         * bindings/js/JSArrayBufferViewHelper.h:
3023         (WebCore::toJSArrayBufferView):
3024         * bindings/js/JSCSSRuleCustom.cpp:
3025         (WebCore::toJS):
3026         * bindings/js/JSCSSValueCustom.cpp:
3027         (WebCore::toJS):
3028         * bindings/js/JSDOMBinding.cpp:
3029         (WebCore::getCachedDOMObjectWrapper):
3030         (WebCore::cacheDOMObjectWrapper):
3031         * bindings/js/JSDOMBinding.h:
3032         (WebCore::createDOMObjectWrapper):
3033         (WebCore::getDOMObjectWrapper):
3034         (WebCore::createDOMNodeWrapper):
3035         (WebCore::getDOMNodeWrapper): Changed DOM wrapper functions to operate
3036         in terms of DOMWrapperWorlds instead of ExecStates. This is clearer,
3037         and ever-so-slightly faster.
3038         
3039         Removed hasCachedXXX functions, now that they're unused.
3040
3041         * bindings/js/JSDOMWindowCustom.cpp:
3042         (WebCore::JSDOMWindow::history):
3043         (WebCore::JSDOMWindow::location):
3044         * bindings/js/JSDocumentCustom.cpp:
3045         (WebCore::JSDocument::location):
3046         (WebCore::toJS):
3047         * bindings/js/JSElementCustom.cpp:
3048         (WebCore::toJSNewlyCreated):
3049         * bindings/js/JSEventCustom.cpp:
3050         (WebCore::toJS):
3051         * bindings/js/JSHTMLCollectionCustom.cpp:
3052         (WebCore::toJS):
3053         * bindings/js/JSImageDataCustom.cpp:
3054         (WebCore::toJS):
3055         * bindings/js/JSNodeCustom.cpp:
3056         (WebCore::createWrapperInline):
3057         * bindings/js/JSNodeCustom.h:
3058         (WebCore::getCachedDOMNodeWrapper):
3059         (WebCore::cacheDOMNodeWrapper):
3060         (WebCore::toJS):
3061         * bindings/js/JSSVGPathSegCustom.cpp:
3062         (WebCore::toJS):
3063         * bindings/js/JSStyleSheetCustom.cpp:
3064         (WebCore::toJS): Updated for changes above.
3065
3066         * xml/XMLHttpRequest.cpp:
3067         (WebCore::XMLHttpRequest::dropProtection): Removed use of hasCachedDOMObjectWrapper
3068         because XHR is almost always created and used by JavaScript, so it's
3069         simpler to just always report extra cost.
3070
3071 2011-04-15  Andreas Kling  <kling@webkit.org>
3072
3073         Rolling out accidental part of r84010.
3074
3075         * platform/qt/RenderThemeQt.cpp:
3076         (WebCore::RenderThemeQt::computeSizeBasedOnStyle):
3077         (WebCore::RenderThemeQt::setButtonPadding):
3078
3079 2011-04-15  Oliver Hunt  <oliver@apple.com>
3080
3081         Forgot windows build fix.
3082
3083         * bindings/js/JSNodeFilterCondition.cpp:
3084         (WebCore::JSNodeFilterCondition::WeakOwner::isReachableFromOpaqueRoots):
3085
3086 2011-04-15  Joseph Pecoraro  <joepeck@webkit.org>
3087
3088         Reviewed by Yury Semikhatsky.
3089
3090         Frontend Part of Web Inspector: Remote Web Inspector - Cross Platform InspectorServer
3091         https://bugs.webkit.org/show_bug.cgi?id=51364
3092
3093         The front end should not use a transparent background when
3094         loaded as a web page (remote debugging) but should when loaded
3095         regularly in a custom window. This adds a "remote" style class
3096         onto the document body when the page is loaded remotely.
3097
3098         * inspector/front-end/inspector.css:
3099         (body.detached.platform-mac-snowleopard:not(.remote) #toolbar): respect the "remote" class.
3100         * inspector/front-end/inspector.js: add a "remote" class on the body when loaded remotely.
3101
3102 2011-04-15  Joseph Pecoraro  <joepeck@webkit.org>
3103
3104         Reviewed by David Kilzer.
3105
3106         JSLock ASSERT seen often when using the inspector for long
3107         periods of time. We should take the JSLock whenever we
3108         might allocate memory in the JavaScript Heap.
3109
3110         JSC InjectedScriptHost::nodeAsScriptValue should take JSLock before possible JavaScript Allocations
3111         https://bugs.webkit.org/show_bug.cgi?id=58674
3112
3113         * bindings/js/JSInjectedScriptHostCustom.cpp:
3114         (WebCore::InjectedScriptHost::nodeAsScriptValue): take the JSLock.
3115
3116 2011-04-14  Oliver Hunt  <oliver@apple.com>
3117
3118         Reviewed by Geoffrey Garen.
3119
3120         Make JSNodeFilterCondition handle its lifetime correctly
3121         https://bugs.webkit.org/show_bug.cgi?id=58622
3122
3123         Switch over to a WeakHandle and external roots to keep the
3124         condition value live.
3125
3126         * bindings/js/JSNodeFilterCondition.cpp:
3127         (WebCore::JSNodeFilterCondition::JSNodeFilterCondition):
3128         (WebCore::JSNodeFilterCondition::markAggregate):
3129         (WebCore::JSNodeFilterCondition::acceptNode):
3130         (WebCore::JSNodeFilterCondition::WeakOwner::isReachableFromOpaqueRoots):
3131         * bindings/js/JSNodeFilterCondition.h:
3132         (WebCore::JSNodeFilterCondition::create):
3133         * bindings/js/JSNodeFilterCustom.cpp:
3134         (WebCore::toNodeFilter):
3135         * bindings/scripts/CodeGeneratorJS.pm:
3136
3137 2011-04-13  Luiz Agostini  <luiz.agostini@openbossa.org>
3138
3139         Reviewed by Andreas Kling.
3140
3141         [Qt] QNetworkReplyHandler refactoring: some adjustments
3142         https://bugs.webkit.org/show_bug.cgi?id=57092
3143
3144         - Removing flag m_redirected from QNetworkReplyHandler and using m_redirectionTargetUrl.isValid() instead.
3145         - Moving flag m_responseContainsData from QNetworkReplyHandler to the reply wrapper and removing the connection of
3146         signal metaDataChanged for m_responseContainsData to be consistent.
3147         - Using an OwnPtr to keep the reference to the QNetworkReplyWrapper.
3148
3149         * platform/network/qt/QNetworkReplyHandler.cpp:
3150         (WebCore::QNetworkReplyWrapper::QNetworkReplyWrapper):
3151         (WebCore::QNetworkReplyWrapper::receiveMetaData):
3152         (WebCore::QNetworkReplyWrapper::didReceiveReadyRead):
3153         (WebCore::QNetworkReplyHandler::QNetworkReplyHandler):
3154         (WebCore::QNetworkReplyHandler::release):
3155         (WebCore::shouldIgnoreHttpError):
3156         (WebCore::QNetworkReplyHandler::finish):
3157         (WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
3158         (WebCore::QNetworkReplyHandler::redirect):
3159         (WebCore::QNetworkReplyHandler::forwardData):
3160         * platform/network/qt/QNetworkReplyHandler.h:
3161         (WebCore::QNetworkReplyWrapper::responseContainsData):
3162         (WebCore::QNetworkReplyWrapper::redirected):
3163
3164 2011-04-15  Alexey Proskuryakov  <ap@apple.com>
3165
3166         Chromium build fix.
3167
3168         * platform/SecureTextInput.h: CARBON_SECURE_INPUT_MODE no longer exists.
3169
3170 2011-04-15  Mike Reed  <reed@google.com>
3171
3172         Reviewed by Darin Fisher.
3173
3174         hide unused static function when SKIA_GPU is enabled
3175         https://bugs.webkit.org/show_bug.cgi?id=58670
3176
3177         No new tests. Just fixes a warning (treated as an error) when SKIA_GPU is enabled
3178
3179         * platform/graphics/skia/ImageSkia.cpp:
3180
3181 2011-04-15  Simon Fraser  <simon.fraser@apple.com>
3182
3183         Reviewed by Beth Dakin.
3184
3185         Some borders with border-radius do not have rounded inner edges
3186         https://bugs.webkit.org/show_bug.cgi?id=58457
3187         
3188         Improve the logic used to compute the inner radii on curved
3189         borders, to maintain borders of even thickness around the curve.
3190         
3191         Tests: fast/borders/mixed-border-styles-radius.html
3192                fast/borders/mixed-border-styles.html
3193
3194         * rendering/RenderBoxModelObject.h:
3195         * rendering/RenderBoxModelObject.cpp:
3196         (WebCore::RenderBoxModelObject::computeBorderOuterRect):
3197         (WebCore::RenderBoxModelObject::computeBorderInnerRect):
3198         Two new utility functions to share some code that was in both paintBorder()
3199         and paintBoxShaadow().
3200         getRoundedInnerBorderWithBorderWidths() now takes the outer border box
3201         as well as the inner box.
3202         
3203         (WebCore::RenderBoxModelObject::paintBorder): Call new methods.
3204         (WebCore::RenderBoxModelObject::paintBoxShadow): Ditto.
3205
3206         * rendering/RenderObject.cpp:
3207         (WebCore::RenderObject::drawBoxSideFromPath):
3208         getRoundedInnerBorderWithBorderWidths() now takes the outer border box
3209         as well as the inner box.
3210
3211         * rendering/style/RenderStyle.cpp:
3212         (WebCore::RenderStyle::getRoundedInnerBorderWithBorderWidths):
3213         * rendering/style/RenderStyle.h:
3214         Compute the inner radii by starting with teh radii used for the
3215         outer box, and then shrinking them down based on the border thickness.
3216
3217 2011-04-14  Alexey Proskuryakov  <ap@apple.com>
3218
3219         Reviewed by Dan Bernstein.
3220
3221         WebKit2: Password field input does not switch to ASCII-compatible source
3222         https://bugs.webkit.org/show_bug.cgi?id=58583
3223         <rdar://problem/9059651>
3224
3225         * platform/SecureTextInput.cpp:
3226         (WebCore::enableSecureTextInput):
3227         (WebCore::disableSecureTextInput):
3228         This is now only used by Chromium. There is no need to change TSMDocument properties in
3229         renderer process (and really, all secure text input logic in WebCore should be eliminated).
3230
3231 2011-04-13  Xiaomei Ji  <xji@chromium.org>
3232
3233         Reviewed by Ryosuke Niwa.
3234
3235         Continue (3rd) experiment with moving caret by word in visual order.
3236         https://bugs.webkit.org/show_bug.cgi?id=58294
3237
3238         This patch along with r82588 and r83483 implements moving caret by
3239         word in visual order.
3240         
3241         The overall algorithm is:
3242         1. First get the InlineBox and offset of the pass-in VisiblePosition.
3243         2. Based on the position (left boundary, middle, right boundary) of the offset and the
3244            direction of the movement, look for visually adjacent word breaks.
3245         2.1 If the offset is the minimum offset of the box,
3246             return the rightmost word boundary in previous boxes if moving left.
3247             return the leftmost word boundary in box and next boxes if moving right.
3248         2.2 Similar for the case when offset is at the maximum offset of the box.
3249         2.3 When offset is inside the box (not at boundaries), first find the previousWordPosition 
3250             or nextWordPosition based on the directionality of the box. If this word break position 
3251             is also inside the same box, return it. Otherwise (the nextWordPosition or 
3252             previousWordPosition is not in the same box or is at the box boundary), collect all the 
3253             word breaks in the box and search for the one closest to the input "offset" based on 
3254             box directionality, block directionality, and movement direction. Continue search in 
3255             adjacent boxes if needed.
3256
3257         Notes:
3258         1. Word boundaries are collected one box at a time. Only when a boundary that is closest to 
3259            the input position (in the moving direction) is not available in current box, word 
3260            boundaries in adjacent box will be collected. So, there is no need to save InlineBox in 
3261            word boundaries. Instead, the word boundaries are saved as a pair 
3262            (VisiblePosition, offset) to avoid recomputing VisiblePosition.
3263  
3264         2. We only collect boundaries of the right kind (i.e. left boundary of a word in LTR block
3265            and right boundary of a word in RTL block). And word boundaries are collected using 
3266            previousWordPosition() and nextWordPosition(). So when box directionality is the same as 
3267            block directionality, word boundaries are collected from right to left visually in a LTR 
3268            box, and word boundaries are collected from left to right visually in a RTL box. It is
3269            the other way around when box directionality is different from block directionality.
3270
3271         3. To find the right kinds of word boundaries, we must move back and forth between words
3272            in some situations. For example, if we're moving to the right in a LTR box in LTR block,
3273            we cannot simply return nextWordPosition() because it would return the right boundary
3274            of a word. Instead, we return nextWordPosition()'s nextWordPosition()'s previousWordPosition().
3275
3276         4. When collecting word breaks inside a box, it first computes a start position, then
3277            collect the right kind of word breaks until it reaches the end of (or beyond) the box.
3278            In the meanwhile, it might need special handling on the rightmost or leftmost position 
3279            based on the directionality of the box and block. These computations do not consider the 
3280            box's bidi level.
3281
3282         * editing/visible_units.cpp:
3283         (WebCore::nextWordBreakInBoxInsideBlockWithDifferentDirectionality):
3284         (WebCore::collectWordBreaksInBox):
3285         (WebCore::previousWordBoundaryInBox):
3286         (WebCore::nextWordBoundaryInBox):
3287         (WebCore::visuallyLastWordBoundaryInBox):
3288         (WebCore::leftWordBoundary):
3289         (WebCore::rightWordBoundary):
3290         (WebCore::leftWordPosition):
3291         (WebCore::rightWordPosition):
3292
3293 2011-04-14  Zhenyao Mo  <zmo@google.com>
3294
3295         Reviewed by Kenneth Russell.
3296
3297         Use HTMLImageElement in Canvas 2D / WebGL before response is ready causes crash
3298         https://bugs.webkit.org/show_bug.cgi?id=58501
3299
3300         * html/canvas/WebGLRenderingContext.cpp:
3301         (WebCore::WebGLRenderingContext::texImage2D): Call validateHTMLImageElement().
3302         (WebCore::WebGLRenderingContext::texSubImage2D): Ditto.
3303         (WebCore::WebGLRenderingContext::validateHTMLImageElement): Make sure image is ready.
3304         * html/canvas/WebGLRenderingContext.h:
3305
3306 2011-04-07  MORITA Hajime  <morrita@google.com>
3307
3308         Reviewed by Ryosuke Niwa.
3309
3310         DocumentMaker::AllMarkers should not be a part of DocumentMarker::MarkerType
3311         https://bugs.webkit.org/show_bug.cgi?id=58112
3312         
3313         - Converted DocumentMarker::MarkerTypes from unsigned int to a class.
3314         - Converted DocumentMarker::AllMarkers from an enum entry to a subclass of MarkerTypes.
3315         - Changed type of some MarkerType argument on DocumentMarkerController API to MarkerTypes
3316           which should allow a combination of MarkerType constansts.
3317         - Removed some MarkerType arguments on DocumentMarkerController API
3318           which only received AllMarkers.
3319         
3320         No new tests, no behavior change.
3321
3322         * WebCore.exp.in:
3323         * dom/DocumentMarker.h:
3324         (WebCore::DocumentMarker::MarkerTypes::MarkerTypes):
3325         (WebCore::DocumentMarker::MarkerTypes::contains):
3326         (WebCore::DocumentMarker::MarkerTypes::intersects):
3327         (WebCore::DocumentMarker::MarkerTypes::operator==):
3328         (WebCore::DocumentMarker::MarkerTypes::add):
3329         (WebCore::DocumentMarker::MarkerTypes::remove):
3330         (WebCore::DocumentMarker::AllMarkers::AllMarkers):
3331         * dom/DocumentMarkerController.cpp:
3332         (WebCore::DocumentMarkerController::possiblyHasMarkers):
3333         (WebCore::DocumentMarkerController::addMarker):
3334         (WebCore::DocumentMarkerController::copyMarkers):
3335         (WebCore::DocumentMarkerController::removeMarkers):
3336         (WebCore::DocumentMarkerController::markerContainingPoint):
3337         (WebCore::DocumentMarkerController::markersInRange):
3338         (WebCore::DocumentMarkerController::renderedRectsForMarkers):
3339         (WebCore::DocumentMarkerController::removeMarkersFromMarkerMapVectorPair):
3340         (WebCore::DocumentMarkerController::repaintMarkers):
3341         (WebCore::DocumentMarkerController::shiftMarkers):
3342         (WebCore::DocumentMarkerController::setMarkersActive):
3343         (WebCore::DocumentMarkerController::hasMarkers):
3344         (WebCore::DocumentMarkerController::clearDescriptionOnMarkersIntersectingRange):
3345         * dom/DocumentMarkerController.h:
3346
3347 2011-04-14  Geoffrey Garen  <ggaren@apple.com>
3348
3349         Reviewed by Oliver Hunt.
3350
3351         Complicated hash table is complicated
3352         https://bugs.webkit.org/show_bug.cgi?id=58631
3353         
3354         Now that we use the opaque roots system to track node wrapper lifetime,
3355         we can remove a lot of complicated hash-tablery that used to do the same.
3356         
3357         Now normal world node wrappers are just set as direct properties of
3358         ScriptWrappable, while isolated world node wrappers and other DOM object
3359         wrappers are stored in a shared, per-world hash table.
3360
3361         In addition to reducing complexity, this makes DOM wrapper allocation
3362         1.6X faster (tested with scratch-gc-dom3.html), and it reduces the memory
3363         footprint of normal world wrappers by ~2/3, and isolated world wrappers
3364         by ~1/3.
3365
3366         * WebCore.exp.in: Paying the patch tithe.
3367
3368         * bindings/js/DOMWrapperWorld.cpp:
3369         (WebCore::DOMWrapperWorld::~DOMWrapperWorld):
3370         (WebCore::DOMWrapperWorld::clearWrappers): No more per-document hash tables.
3371
3372         (WebCore::JSNodeHandleOwner::finalize): Changed to call a helper function,
3373         so the code to destroy a wrapper can live next to the code to create one.
3374
3375         * bindings/js/DOMWrapperWorld.h: No more per-document hash tables.
3376
3377         * bindings/js/JSDOMBinding.cpp:
3378         (WebCore::uncacheDOMObjectWrapper):
3379         * bindings/js/JSDOMBinding.h:
3380         (WebCore::createDOMNodeWrapper):
3381         (WebCore::getDOMNodeWrapper): No more per-document hash tables.
3382         Added uncacheDOMObjectWrapper to be symmetrical with cacheDOMObjectWrapper.
3383
3384         * bindings/js/JSDocumentCustom.cpp:
3385         (WebCore::toJS):
3386         * bindings/js/JSElementCustom.cpp:
3387         (WebCore::toJSNewlyCreated):
3388         * bindings/js/JSNodeCustom.cpp:
3389         (WebCore::createWrapperInline): Ditto.
3390
3391         * bindings/js/JSNodeCustom.h:
3392         (WebCore::getCachedDOMNodeWrapper):
3393         (WebCore::cacheDOMNodeWrapper):
3394         (WebCore::uncacheDOMNodeWrapper):
3395         (WebCore::toJS): Implemented the scheme described above.
3396
3397         * bindings/js/ScriptWrappable.h:
3398         (WebCore::ScriptWrappable::wrapper):
3399         (WebCore::ScriptWrappable::setWrapper):
3400         (WebCore::ScriptWrappable::clearWrapper): ScriptWrappable needs a handle
3401         owner now, since we don't have an extra handle living in a hash table
3402         to maintain ownership for us.
3403
3404         * dom/Document.cpp:
3405         (WebCore::Document::Document):
3406         (WebCore::Document::~Document):
3407         * dom/Document.h:
3408         * dom/Node.cpp:
3409         (WebCore::Node::setDocument): No more per-document hash tables.
3410
3411         * html/HTMLCanvasElement.cpp:
3412         (WebCore::HTMLCanvasElement::createImageBuffer): Removed call to
3413         hasCachedDOMNodeWrapperUnchecked because that was the old way of doing
3414         things, and I was in the mood for getting rid of the old way. It's
3415         debatable whether the check was ever a good idea. Even when a <canvas>
3416         doesn't have a direct JS wrapper, other JS references can still keep
3417         the <canvas> alive. So, it's probably best always to report extra cost.
3418
3419 2011-04-15  Vsevolod Vlasov  <vsevik@chromium.org>
3420
3421         Reviewed by Pavel Feldman.
3422
3423         Web Inspector: Rename rawRequestHeadersText and RawResponseHeadersText to requestHeadersText and responseHeadersText
3424         https://bugs.webkit.org/show_bug.cgi?id=58650
3425
3426         * inspector/Inspector.json:
3427         * inspector/InspectorResourceAgent.cpp:
3428         (WebCore::buildObjectForResourceResponse):
3429         * inspector/front-end/NetworkManager.js:
3430         (WebInspector.NetworkDispatcher.prototype._updateResourceWithResponse):
3431         * inspector/front-end/Resource.js:
3432         (WebInspector.Resource.prototype.get requestHeadersText):
3433         (WebInspector.Resource.prototype.set requestHeadersText):
3434         (WebInspector.Resource.prototype.get requestHeadersSize):
3435         (WebInspector.Resource.prototype.get responseHeadersText):
3436         (WebInspector.Resource.prototype.set responseHeadersText):
3437         (WebInspector.Resource.prototype.get responseHeadersSize):
3438         (WebInspector.Resource.prototype._headersSize):
3439         * inspector/front-end/ResourceHeadersView.js:
3440         (WebInspector.ResourceHeadersView):
3441         (WebInspector.ResourceHeadersView.prototype._refreshRequestHeaders):
3442         (WebInspector.ResourceHeadersView.prototype._refreshResponseHeaders):
3443         (WebInspector.ResourceHeadersView.prototype._refreshHeadersTitle):
3444         (WebInspector.ResourceHeadersView.prototype._refreshHeadersText):
3445         (WebInspector.ResourceHeadersView.prototype._toggleRequestHeadersText):
3446         (WebInspector.ResourceHeadersView.prototype._toggleResponseHeadersText):
3447         (WebInspector.ResourceHeadersView.prototype._createHeadersToggleButton):
3448         * inspector/front-end/networkPanel.css:
3449         (.resource-headers-view .outline-disclosure li.headers-text):
3450         * platform/network/ResourceLoadInfo.h:
3451
3452 2011-04-15  Luke Macpherson   <macpherson@chromium.org>
3453
3454         Reviewed by Dimitri Glazkov.
3455
3456         Implement css overflow properties in CSSStyleApplyProperty
3457         https://bugs.webkit.org/show_bug.cgi?id=58633
3458
3459         No new tests required as no functionality changes.
3460
3461         * css/CSSStyleApplyProperty.cpp:
3462         (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
3463         Add initializers for CSSPropertyOverflowX, CSSPropertyOverflowY and CSSPropertyOverflow.
3464         * css/CSSStyleSelector.cpp:
3465         (WebCore::CSSStyleSelector::applyProperty):
3466         Delete existing implementations.
3467
3468 2011-04-15  Sam Weinig  <sam@webkit.org>
3469
3470         Reviewed by Maciej Stachowiak.
3471
3472         Make mac WebKit1 use the default localization strategy
3473         https://bugs.webkit.org/show_bug.cgi?id=58628
3474
3475         * English.lproj/Localizable.strings:
3476         Update by running update-webkit-localizable-strings.
3477
3478         * platform/DefaultLocalizationStrategy.cpp:
3479         (WebCore::DefaultLocalizationStrategy::contextMenuItemTagLookUpInDictionary):
3480         (WebCore::DefaultLocalizationStrategy::keygenKeychainItemName):
3481         (WebCore::DefaultLocalizationStrategy::imageTitle):
3482         Match the WebKit1 versions of these functions by special casing CF platforms.
3483
3484 2011-04-15  Vsevolod Vlasov  <vsevik@chromium.org>
3485
3486         Reviewed by Pavel Feldman.
3487
3488         Web Inspector: No console message and headers in inspector when X-Frame-Options header blocks a load
3489         https://bugs.webkit.org/show_bug.cgi?id=58136
3490
3491         Passed response info to inspector when X-Frame-Options header blocks resource loading.
3492
3493         Test: http/tests/inspector/network/x-frame-options-deny.html
3494
3495         * inspector/InspectorInstrumentation.cpp:
3496         (WebCore::InspectorInstrumentation::continueAfterXFrameOptionsDeniedImpl):
3497         * inspector/InspectorInstrumentation.h:
3498         (WebCore::InspectorInstrumentation::continueAfterXFrameOptionsDenied):
3499         * loader/MainResourceLoader.cpp:
3500         (WebCore::MainResourceLoader::didReceiveResponse):
3501
3502 2011-04-15  Andrey Adaikin  <aandrey@google.com>
3503
3504         Reviewed by Pavel Feldman.
3505
3506         Web Inspector: TextViewer and TextEditorModel must support both \n and \r\n as line separators
3507         https://bugs.webkit.org/show_bug.cgi?id=58449
3508
3509         Test: inspector/editor/text-editor-model.html
3510
3511         * inspector/front-end/TextEditorModel.js:
3512         (WebInspector.TextEditorModel):
3513         (WebInspector.TextEditorModel.prototype.get text):
3514         (WebInspector.TextEditorModel.prototype.setText):
3515         (WebInspector.TextEditorModel.prototype._innerSetText):
3516         (WebInspector.TextEditorModel.prototype.copyRange):
3517
3518 2011-04-15  Sergey Vorobyev  <sergeyvorobyev@google.com>
3519
3520         Reviewed by Yury Semikhatsky.
3521
3522         Web Inspector: Network events don't preserves,
3523         when inspector frontend closed and open again
3524         https://bugs.webkit.org/show_bug.cgi?id=58064
3525
3526         Added InspectorFrontendProxy and EventsCollector.
3527         They allow captured messages from InspectorResourceAgent
3528         to frontend (or mockFrontend if frontend disabled) and
3529         push collected data when frontend reconnect.
3530         This functionality is disabled by default.
3531
3532         * CMakeLists.txt:
3533         * GNUmakefile.list.am:
3534         * WebCore.gypi:
3535         * WebCore.pro:
3536         * WebCore.vcproj/WebCore.vcproj:
3537         * WebCore.xcodeproj/project.pbxproj:
3538         * inspector/EventsCollector.cpp: Added.
3539         (WebCore::EventsCollector::EventsCollector):
3540         (WebCore::EventsCollector::addEvent):
3541         (WebCore::EventsCollector::sendCollectedEvents):
3542         * inspector/EventsCollector.h: Added.
3543         (WebCore::EventsCollector::~EventsCollector):
3544         * inspector/Inspector.json:
3545         * inspector/InspectorFrontendProxy.cpp: Added.
3546         (WebCore::InspectorFrontendProxy::InspectorFrontendProxy):
3547         (WebCore::InspectorFrontendProxy::setInspectorFrontendChannel):
3548         (WebCore::InspectorFrontendProxy::setEventsCollector):
3549         (WebCore::InspectorFrontendProxy::sendMessageToFrontend):
3550         * inspector/InspectorFrontendProxy.h: Added.
3551         (WebCore::InspectorFrontendProxy::~InspectorFrontendProxy):
3552         * inspector/InspectorInstrumentation.cpp:
3553         (WebCore::InspectorInstrumentation::domContentLoadedEventFiredImpl):
3554         (WebCore::InspectorInstrumentation::loadEventFiredImpl):
3555         * inspector/InspectorInstrumentation.h:
3556         (WebCore::InspectorInstrumentation::willSendRequest):
3557         (WebCore::InspectorInstrumentation::willReceiveResourceResponse):
3558         (WebCore::InspectorInstrumentation::didReceiveContentLength):
3559         (WebCore::InspectorInstrumentation::didFinishLoading):
3560         (WebCore::InspectorInstrumentation::domContentLoadedEventFired):
3561         (WebCore::InspectorInstrumentation::loadEventFired):
3562         (WebCore::InspectorInstrumentation::frameDetachedFromParent):
3563         (WebCore::InspectorInstrumentation::didCreateWebSocket):
3564         (WebCore::InspectorInstrumentation::willSendWebSocketHandshakeRequest):
3565         (WebCore::InspectorInstrumentation::didReceiveWebSocketHandshakeResponse):
3566         (WebCore::InspectorInstrumentation::didCloseWebSocket):
3567         * inspector/InspectorResourceAgent.cpp:
3568         (WebCore::InspectorResourceAgent::setFrontend):
3569         (WebCore::InspectorResourceAgent::resourceContent):
3570         (WebCore::InspectorResourceAgent::~InspectorResourceAgent):
3571         (WebCore::InspectorResourceAgent::didReceiveResponse):
3572         (WebCore::InspectorResourceAgent::domContentEventFired):
3573         (WebCore::InspectorResourceAgent::loadEventFired):
3574         (WebCore::InspectorResourceAgent::enabledBackgoundEventsCoollection):
3575         (WebCore::InspectorResourceAgent::enable):
3576         (WebCore::InspectorResourceAgent::InspectorResourceAgent):
3577         * inspector/InspectorResourceAgent.h:
3578         * inspector/front-end/NetworkManager.js:
3579         (WebInspector.NetworkDispatcher.prototype.domContentEventFired):
3580         (WebInspector.NetworkDispatcher.prototype.loadEventFired):
3581         * inspector/front-end/inspector.js:
3582         (WebInspector.domContentEventFired):
3583         (WebInspector.loadEventFired):
3584
3585 2011-04-15  Alexis Menard  <alexis.menard@openbossa.org>
3586
3587         Reviewed by Dimitri Glazkov.
3588
3589         REGRESSION(r83397) [Qt] When clicking on the media elements they grow 2 pixels.
3590         https://bugs.webkit.org/show_bug.cgi?id=58477
3591
3592         Since r83397 the media controls elements are actual DOM elements.
3593         Therefore the global style-sheet applies to them. html.css defines
3594         input[type="button"]:active to be border-style: inset which means
3595         that when the buttons are active they grow by their border size. Therefore
3596         ports which are not using the borders must explicitly disable them in their custom
3597         stylesheet.
3598
3599         * css/mediaControlsQt.css:
3600         (audio::-webkit-media-controls-mute-button):
3601         (video::-webkit-media-controls-mute-button):
3602         (audio::-webkit-media-controls-play-button):
3603         (video::-webkit-media-controls-play-button):
3604         (video::-webkit-media-controls-fullscreen-button):
3605         * css/mediaControlsQuickTime.css:
3606         (audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button):
3607         (audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button):
3608         (audio::-webkit-media-controls-seek-back-button, video::-webkit-media-controls-seek-back-button):
3609         (audio::-webkit-media-controls-seek-forward-button, video::-webkit-media-controls-seek-forward-button):
3610         (audio::-webkit-media-controls-fullscreen-button, video::-webkit-media-controls-fullscreen-button):
3611         (audio::-webkit-media-controls-rewind-button, video::-webkit-media-controls-rewind-button):
3612         (audio::-webkit-media-controls-return-to-realtime-button, video::-webkit-media-controls-return-to-realtime-button):
3613         (audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button):
3614         (audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-controls-volume-slider-mute-button):
3615
3616 2011-04-15  Zelidrag Hornung  <zelidrag@chromium.org>
3617
3618         Reviewed by Darin Fisher.
3619
3620         Added enums for external file system type.
3621         https://bugs.webkit.org/show_bug.cgi?id=58456
3622
3623         * fileapi/DOMFileSystemBase.cpp:
3624         (WebCore::DOMFileSystemBase::crackFileSystemURL):
3625         * fileapi/DOMFileSystemBase.h:
3626         * fileapi/EntryBase.cpp:
3627         (WebCore::EntryBase::toURL):
3628         * page/DOMWindow.cpp:
3629         (WebCore::DOMWindow::requestFileSystem):
3630         * page/DOMWindow.h:
3631         * platform/AsyncFileSystem.h:
3632         * workers/WorkerContext.cpp:
3633         (WebCore::WorkerContext::requestFileSystem):
3634         (WebCore::WorkerContext::requestFileSystemSync):
3635         * workers/WorkerContext.h:
3636
3637 2011-04-15  Pavel Feldman  <pfeldman@google.com>
3638
3639         Reviewed by Yury Semikhatsky.
3640
3641         Web Inspector: make resource revisions use dedicated type (not Resource clone).
3642         https://bugs.webkit.org/show_bug.cgi?id=58659
3643
3644         * inspector/front-end/CSSStyleModel.js:
3645         (WebInspector.CSSStyleModel.prototype.setStyleSheetText):
3646         * inspector/front-end/Resource.js:
3647         (WebInspector.Resource.prototype.addRevision):
3648         (WebInspector.Resource.prototype._innerRequestContent.onResourceContent):
3649         (WebInspector.Resource.prototype._innerRequestContent):
3650         (WebInspector.ResourceRevision):
3651         (WebInspector.ResourceRevision.prototype.get resource):
3652         (WebInspector.ResourceRevision.prototype.get timestamp):
3653         (WebInspector.ResourceRevision.prototype.get content):
3654         (WebInspector.ResourceRevision.prototype.revertToThis):
3655         (WebInspector.ResourceRevision.prototype.requestContent.mycallback):
3656         (WebInspector.ResourceRevision.prototype.requestContent):
3657         * inspector/front-end/ResourceView.js:
3658         (WebInspector.ResourceView.resourceViewTypeMatchesResource):
3659         (WebInspector.ResourceView.resourceViewForResource):
3660         (WebInspector.ResourceView.recreateResourceView):
3661         (WebInspector.ResourceView.existingResourceViewForResource):
3662         (WebInspector.RevisionSourceFrame):
3663         (WebInspector.RevisionSourceFrame.prototype.get resource):
3664         (WebInspector.RevisionSourceFrame.prototype.isContentEditable):
3665         (WebInspector.RevisionSourceFrame.prototype.requestContent):
3666         * inspector/front-end/ResourcesPanel.js:
3667         (WebInspector.ResourcesPanel.prototype._showResourceView):
3668         (WebInspector.ResourcesPanel.prototype._showRevisionView):
3669         (WebInspector.ResourcesPanel.prototype._fetchAndApplyDiffMarkup.step1):
3670         (WebInspector.ResourcesPanel.prototype._fetchAndApplyDiffMarkup.step2):
3671         (WebInspector.ResourcesPanel.prototype._fetchAndApplyDiffMarkup):
3672         (WebInspector.ResourceRevisionTreeElement):
3673         (WebInspector.ResourceRevisionTreeElement.prototype.get itemURL):
3674         (WebInspector.ResourceRevisionTreeElement.prototype.onselect):
3675         (WebInspector.ResourceRevisionTreeElement.prototype._ondragstart):
3676         (WebInspector.ResourceRevisionTreeElement.prototype._handleContextMenuEvent):
3677         * inspector/front-end/SourceFrame.js:
3678         (WebInspector.SourceFrame.prototype._ensureContentLoaded):
3679         (WebInspector.SourceFrame.prototype.requestContent):
3680         (WebInspector.SourceFrame.prototype.commitEditing.didEditContent):
3681         (WebInspector.SourceFrame.prototype.commitEditing):
3682
3683 2011-04-15  Alexander Pavlov  <apavlov@chromium.org>
3684
3685         Reviewed by Yury Semikhatsky.
3686
3687         Web Inspector: Prevent Backspace keypresses from routing into the inspected page
3688         https://bugs.webkit.org/show_bug.cgi?id=58653
3689
3690         * inspector/front-end/inspector.js:
3691         (WebInspector.documentKeyDown):
3692
3693 2011-04-15  Alice Boxhall  <aboxhall@chromium.org>
3694
3695         Reviewed by Ryosuke Niwa.
3696
3697         Text selection changes unexpectedly when dragging out of the <input>
3698         https://bugs.webkit.org/show_bug.cgi?id=55552
3699
3700         Tests: editing/selection/select-out-of-editable.html
3701                editing/selection/select-out-of-floated-contenteditable.html
3702                editing/selection/select-out-of-floated-input.html
3703                editing/selection/select-out-of-floated-textarea.html
3704
3705         * page/EventHandler.cpp:
3706         (WebCore::selectionExtentRespectingEditingBoundary): When dragging from an editable element, check that
3707         the endpoint is not outside the element. If it is, translate the point into a local point within
3708         the editable element.
3709         (WebCore::EventHandler::updateSelectionForMouseDrag): Call targetPositionForSelectionEndpoint() to
3710         calculate the selection endpoint.
3711
3712 2011-04-15  Adam Roben  <aroben@apple.com>
3713
3714         Roll out r83954
3715
3716         It was causing fast/dom/Window/timer-null-script-execution-context.html to crash on multiple
3717         bots.
3718
3719         See <http://webkit.org/b/58610>.
3720
3721         * bindings/js/JSDOMWindowCustom.cpp:
3722         (WebCore::JSDOMWindow::setTimeout):
3723         (WebCore::JSDOMWindow::setInterval):
3724         * bindings/js/JSWorkerContextCustom.cpp:
3725         (WebCore::JSWorkerContext::setTimeout):
3726         (WebCore::JSWorkerContext::setInterval):
3727         * bindings/js/ScheduledAction.cpp:
3728         (WebCore::ScheduledAction::create):
3729         * bindings/js/ScheduledAction.h:
3730         * bindings/v8/custom/V8DOMWindowCustom.cpp:
3731         (WebCore::WindowSetTimeoutImpl):
3732         * page/ContentSecurityPolicy.cpp:
3733         * page/ContentSecurityPolicy.h:
3734
3735 2011-04-15  Pavel Feldman  <pfeldman@google.com>
3736
3737         Reviewed by Yury Semikhatsky.
3738
3739         Web Inspector: refactor resource setContent / revisions infrastructure to get
3740         rid of onRevert callback.
3741         https://bugs.webkit.org/show_bug.cgi?id=58649
3742
3743         Instead, we will have DomainModel/Resource binding responsible for changing
3744         underlying model upon resource changes and vice versa.
3745
3746         * inspector/Inspector.json:
3747         * inspector/InspectorCSSAgent.cpp:
3748         (WebCore::InspectorCSSAgent::getStyleSheet):
3749         (WebCore::InspectorCSSAgent::getStyleSheetText):
3750         (WebCore::InspectorCSSAgent::setStyleSheetText):
3751         (WebCore::InspectorCSSAgent::setPropertyText):
3752         (WebCore::InspectorCSSAgent::toggleProperty):
3753         (WebCore::InspectorCSSAgent::setRuleSelector):
3754         (WebCore::InspectorCSSAgent::assertStyleSheetForId):
3755         * inspector/InspectorCSSAgent.h:
3756         * inspector/front-end/CSSStyleModel.js:
3757         (WebInspector.CSSStyleModel):
3758         (WebInspector.CSSStyleModel.prototype.setRuleSelector):
3759         (WebInspector.CSSStyleModel.prototype.addRule):
3760         (WebInspector.CSSStyleModel.prototype._fireStyleSheetChanged.callback):
3761         (WebInspector.CSSStyleModel.prototype._fireStyleSheetChanged):
3762         (WebInspector.CSSStyleModel.prototype.setStyleSheetText):
3763         (WebInspector.CSSStyleDeclaration.prototype.insertPropertyAt):
3764         (WebInspector.CSSProperty.prototype.setText):
3765         (WebInspector.CSSProperty.prototype.setText.callback):
3766         (WebInspector.CSSProperty.prototype.setDisabled.callback):
3767         (WebInspector.CSSProperty.prototype.setDisabled):
3768         (WebInspector.CSSStyleSheet.prototype.setText):
3769         (WebInspector.CSSStyleModelResourceBinding):
3770         (WebInspector.CSSStyleModelResourceBinding.prototype.setContent):
3771         (WebInspector.CSSStyleModelResourceBinding.prototype._frameNavigated):
3772         (WebInspector.CSSStyleModelResourceBinding.prototype._innerSetContent):
3773         (WebInspector.CSSStyleModelResourceBinding.prototype._loadStyleSheetHeaders):
3774         (WebInspector.CSSStyleModelResourceBinding.prototype._styleSheetChanged.setContent):
3775         (WebInspector.CSSStyleModelResourceBinding.prototype._styleSheetChanged):
3776         * inspector/front-end/DebuggerPresentationModel.js:
3777         (WebInspector.DebuggerPresentationModel):
3778         (WebInspector.DebuggerPresentationModel.prototype.editScriptSource.didEditScriptSource):
3779         (WebInspector.DebuggerPresentationModel.prototype.editScriptSource.didReceiveSource):
3780         (WebInspector.DebuggerPresentationModel.prototype.editScriptSource):
3781         (WebInspector.DebuggerPresentationModelResourceBinding):
3782         (WebInspector.DebuggerPresentationModelResourceBinding.prototype.canSetContent):
3783         (WebInspector.DebuggerPresentationModelResourceBinding.prototype.setContent):
3784         * inspector/front-end/Object.js:
3785         (WebInspector.Object.prototype.hasEventListeners):
3786         * inspector/front-end/Resource.js:
3787         (WebInspector.Resource):
3788         (WebInspector.Resource.registerDomainModelBinding):
3789         (WebInspector.Resource.prototype.isEditable):
3790         (WebInspector.Resource.prototype.setContent):
3791         (WebInspector.Resource.prototype.addRevision):
3792         (WebInspector.Resource.prototype.revertToThis.callback):
3793         (WebInspector.Resource.prototype.revertToThis):
3794         (WebInspector.ResourceDomainModelBinding):
3795         (WebInspector.ResourceDomainModelBinding.prototype.canSetContent):
3796         (WebInspector.ResourceDomainModelBinding.prototype.setContent):
3797         * inspector/front-end/ResourceView.js:
3798         (WebInspector.ResourceView.createResourceView):
3799         (WebInspector.ResourceView.resourceViewTypeMatchesResource):
3800         (WebInspector.ResourceSourceFrame.prototype.isContentEditable):
3801         (WebInspector.ResourceSourceFrame.prototype.editContent):
3802         (WebInspector.ResourceSourceFrame.prototype.endEditing):
3803         (WebInspector.ResourceSourceFrame.prototype._clearIncrementalUpdateTimer):
3804         (WebInspector.ResourceSourceFrame.prototype._requestContent):
3805         * inspector/front-end/ResourcesPanel.js:
3806         (WebInspector.ResourcesPanel.prototype._resourceAdded):
3807         (WebInspector.FrameResourceTreeElement):
3808         (WebInspector.FrameResourceTreeElement.prototype._populateRevisions):
3809         (WebInspector.FrameResourceTreeElement.prototype._revisionAdded):
3810         (WebInspector.FrameResourceTreeElement.prototype._appendRevision):
3811         * inspector/front-end/inspector.html:
3812
3813 2011-04-15  Andrey Kosyakov  <caseq@chromium.org>
3814
3815         Unreviewed, rolling out r83949.
3816         http://trac.webkit.org/changeset/83949
3817         https://bugs.webkit.org/show_bug.cgi?id=57960
3818
3819         broke 31 tests in chromium win & linux
3820
3821         * platform/graphics/chromium/GLES2Canvas.cpp:
3822         (WebCore::GLES2Canvas::drawTexturedRect):
3823         * platform/graphics/chromium/GLES2Canvas.h:
3824         * platform/graphics/gpu/Texture.cpp:
3825         (WebCore::copySubRect):
3826         (WebCore::Texture::load):
3827         (WebCore::Texture::updateSubRect):
3828         * platform/graphics/gpu/Texture.h:
3829         * platform/graphics/skia/ImageBufferSkia.cpp:
3830         (WebCore::getImageData):
3831         (WebCore::putImageData):
3832         (WebCore::ImageBuffer::putUnmultipliedImageData):
3833         (WebCore::ImageBuffer::putPremultipliedImageData):
3834
3835 2011-04-15  Ben Taylor  <bentaylor.solx86@gmail.com>
3836
3837         Reviewed by Alexey Proskuryakov.
3838
3839         Fix building with Sun Studio 12: function pointers for extern "C" are treated differently
3840         https://bugs.webkit.org/show_bug.cgi?id=58508
3841
3842         Since extern "C" makes a different type (although most compilers ignore that),
3843         we should be more careful when passing NPAPI callback functions.
3844
3845         * plugins/npapi.cpp:
3846         (NPN_PluginThreadAsyncCall):
3847
3848 2011-04-15  Adam Barth  <abarth@webkit.org>
3849
3850         Reviewed by Eric Seidel.
3851
3852         CSP should block string arguments to setTimeout and setInterval unless options eval-script
3853         https://bugs.webkit.org/show_bug.cgi?id=58610
3854
3855         It's somewhat sadness that the JSC and V8 code for setTimeout and
3856         setInterval are so different.  I struggled for a while with how to
3857         handle the worker case, but I decided to punt on it for now.
3858
3859         Tests: http/tests/security/contentSecurityPolicy/eval-scripts-setInterval-allowed.html
3860                http/tests/security/contentSecurityPolicy/eval-scripts-setInterval-blocked.html
3861                http/tests/security/contentSecurityPolicy/eval-scripts-setTimeout-allowed.html
3862                http/tests/security/contentSecurityPolicy/eval-scripts-setTimeout-blocked.html
3863
3864         * bindings/js/JSDOMWindowCustom.cpp:
3865         (WebCore::JSDOMWindow::setTimeout):
3866         (WebCore::JSDOMWindow::setInterval):
3867         * bindings/js/JSWorkerContextCustom.cpp:
3868         (WebCore::JSWorkerContext::setTimeout):
3869         (WebCore::JSWorkerContext::setInterval):
3870         * bindings/js/ScheduledAction.cpp:
3871         (WebCore::ScheduledAction::create):
3872         * bindings/js/ScheduledAction.h:
3873         * bindings/v8/custom/V8DOMWindowCustom.cpp:
3874         (WebCore::WindowSetTimeoutImpl):
3875         * page/ContentSecurityPolicy.cpp:
3876         (WebCore::ContentSecurityPolicy::allowEval):
3877         * page/ContentSecurityPolicy.h:
3878
3879 2011-04-15  Adam Barth  <abarth@webkit.org>
3880
3881         Reviewed by Eric Seidel.
3882
3883         Add support for CSP's 'self' source
3884         https://bugs.webkit.org/show_bug.cgi?id=58604
3885
3886         This change is now trivially easy.
3887
3888         Test: http/tests/security/contentSecurityPolicy/script-src-self.html
3889
3890         * page/ContentSecurityPolicy.cpp:
3891         (WebCore::CSPSourceList::addSourceSelf):
3892
3893 2011-04-15  Anna Cavender  <annacc@chromium.org>
3894
3895         Reviewed by Eric Carlson.
3896
3897         Renaming TRACK feature define to VIDEO_TRACK
3898         https://bugs.webkit.org/show_bug.cgi?id=53556
3899
3900         No new tests. No new functionality.
3901
3902         * CMakeLists.txt:
3903         * Configurations/FeatureDefines.xcconfig:
3904         * DerivedSources.make:
3905         * GNUmakefile.am:
3906         * features.pri:
3907         * html/HTMLTagNames.in:
3908         * html/HTMLTrackElement.cpp:
3909         * html/HTMLTrackElement.h:
3910         * html/HTMLTrackElement.idl:
3911
3912 2011-04-14  Andrey Adaikin  <aandrey@google.com>
3913
3914         Reviewed by Pavel Feldman.
3915
3916         Web Inspector: Ctrl+Left/Right switch panels during live editing
3917         https://bugs.webkit.org/show_bug.cgi?id=58521
3918
3919         Disable Ctrl+Left/Right keyboard shortcuts while in live edit.
3920
3921         * inspector/front-end/SourceFrame.js:
3922         (WebInspector.SourceFrame.prototype.readOnlyStateChanged):
3923         * inspector/front-end/TextViewer.js:
3924         (WebInspector.TextViewer.prototype.set readOnly):
3925         (WebInspector.TextViewer.prototype.get readOnly):
3926         (WebInspector.TextViewer.prototype._doubleClick):
3927         (WebInspector.TextViewer.prototype._commitEditing.didCommitEditing):
3928         (WebInspector.TextViewer.prototype._commitEditing):
3929         (WebInspector.TextViewer.prototype._cancelEditing):
3930         (WebInspector.TextViewerDelegate.prototype.readOnlyStateChanged):
3931         (WebInspector.TextEditorMainPanel.prototype.set readOnly):
3932         * inspector/front-end/inspector.js:
3933         (WebInspector.markBeingEdited):
3934         (WebInspector.isEditingAnyField):
3935         (WebInspector.startEditing.cleanUpAfterEditing):
3936
3937 2011-04-14  Vsevolod Vlasov  <vsevik@chromium.org>
3938
3939         Reviewed by Pavel Feldman.
3940
3941         Web Inspector: Enable raw HTTP headers support
3942         https://bugs.webkit.org/show_bug.cgi?id=58259
3943
3944         Added raw headers text support to inspector.
3945
3946         * English.lproj/localizedStrings.js:
3947         * inspector/Inspector.json:
3948         * inspector/InspectorResourceAgent.cpp:
3949         (WebCore::buildObjectForResourceResponse):
3950         * inspector/front-end/NetworkManager.js:
3951         (WebInspector.NetworkDispatcher.prototype._updateResourceWithResponse):
3952         * inspector/front-end/Resource.js:
3953         (WebInspector.Resource):
3954         (WebInspector.Resource.prototype.get transferSize):
3955         (WebInspector.Resource.prototype.set requestHeaders):
3956         (WebInspector.Resource.prototype.get rawRequestHeadersText):
3957         (WebInspector.Resource.prototype.set rawRequestHeadersText):
3958         (WebInspector.Resource.prototype.get requestHeadersSize):
3959         (WebInspector.Resource.prototype.set responseHeaders):
3960         (WebInspector.Resource.prototype.get rawResponseHeadersText):
3961         (WebInspector.Resource.prototype.set rawResponseHeadersText):
3962         (WebInspector.Resource.prototype.get responseHeadersSize):
3963         (WebInspector.Resource.prototype._headersSize):
3964         * inspector/front-end/ResourceHeadersView.js:
3965         (WebInspector.ResourceHeadersView):
3966         (WebInspector.ResourceHeadersView.prototype._refreshParms):
3967         (WebInspector.ResourceHeadersView.prototype._refreshRequestHeaders):
3968         (WebInspector.ResourceHeadersView.prototype._refreshResponseHeaders):
3969         (WebInspector.ResourceHeadersView.prototype._refreshHeadersTitle):
3970         (WebInspector.ResourceHeadersView.prototype._refreshHeaders):
3971         (WebInspector.ResourceHeadersView.prototype._refreshRawHeadersText):
3972         (WebInspector.ResourceHeadersView.prototype._toggleRawRequestHeadersText):
3973         (WebInspector.ResourceHeadersView.prototype._toggleRawResponseHeadersText):
3974         (WebInspector.ResourceHeadersView.prototype._createToggleButton):
3975         (WebInspector.ResourceHeadersView.prototype._createHeadersToggleButton):
3976         * inspector/front-end/networkPanel.css:
3977         (.resource-headers-view .outline-disclosure li .header-toggle):
3978         (.resource-headers-view .outline-disclosure li.expanded .header-toggle):
3979         (.resource-headers-view .outline-disclosure li .header-toggle:hover):
3980         (.resource-headers-view .outline-disclosure li.raw-headers-text):
3981         * platform/network/ResourceLoadInfo.h:
3982
3983 2011-04-14  Justin Novosad  <junov@chromium.org>
3984
3985         Reviewed by Kenneth Russell.
3986
3987         [Chromium] Accelerated 2D Canvas is slow to execute putImageData
3988         https://bugs.webkit.org/show_bug.cgi?id=57960
3989
3990         * platform/graphics/chromium/GLES2Canvas.cpp:
3991         (WebCore::GLES2Canvas::drawTexturedRect):
3992         Added an option for using the blend ops for alpha multiplication
3993         instead of compositing.
3994         (WebCore::GLES2Canvas::applyClipping):
3995         (WebCore::GLES2Canvas::putImageData):
3996         New method for drawing raw pixel data from memory to the canvas
3997         (WebCore::GLES2Canvas::putUnmultipliedImageData):
3998         Wrapper for putImageData
3999         (WebCore::GLES2Canvas::putPremultipliedImageData):
4000         Wrapper for putImageData
4001         * platform/graphics/chromium/GLES2Canvas.h:
4002         * platform/graphics/gpu/Texture.cpp:
4003         (WebCore::copySubRect):
4004         (WebCore::Texture::load):
4005         (WebCore::Texture::updateSubRect):
4006         Added an overload of the updateSubRect method that can receive a pixel 
4007         of a size that is different from texture size. Improved the performance
4008         of updateSubrect by avoiding the allocation of a temporary buffer when
4009         not required.
4010         * platform/graphics/gpu/Texture.h:
4011         * platform/graphics/skia/ImageBufferSkia.cpp:
4012         (WebCore::getImageData):
4013         In the unmultiplied path, division by alpha now performs proper
4014         rounding in order to avoid generational degradation with putImageData
4015         (WebCore::putImageData):
4016         Alpha multiplication now performs proper rounding in order to be
4017         consistent with the hardware rendering path: OpenGL always rounds when
4018         converting to fixed point representation.
4019         (WebCore::ImageBuffer::putUnmultipliedImageData):
4020         Now supports a hardware rendering path, which eliminates the need
4021         for a readback from the GPU
4022         (WebCore::ImageBuffer::putPremultipliedImageData):
4023         Now supports a hardware rendering path, which eliminates the need
4024         for a readback from the GPU
4025
4026 2011-04-14  Joone Hur  <joone.hur@collabora.co.uk>
4027
4028         Reviewed by Martin Robinson.
4029
4030         Creating a CairoPath instance is not thread safe
4031         https://bugs.webkit.org/show_bug.cgi?id=58514
4032
4033         This patch allows a cairo surface to be created just one time in order to 
4034         guarantee thread safety.
4035         In addition, CairoPath.{h,cpp} is renamed to PlatformPathCairo.{h,cpp} to 
4036         prevent confusing them with PathCairo.cpp
4037
4038         * CMakeListsEfl.txt: Added PlatformPathCairo.cpp
4039         * GNUmakefile.list.am: Added PlatformPathCairo.{h,cpp} instead of CairoPath.h.
4040         * platform/graphics/cairo/CairoPath.h: Removed.
4041         * platform/graphics/cairo/CairoUtilities.cpp: Include PlatformPathCairo.h instead of CairoPath.h.
4042         * platform/graphics/cairo/GraphicsContextCairo.cpp: Ditto.
4043         * platform/graphics/cairo/PathCairo.cpp: Ditto.
4044         * platform/graphics/cairo/PlatformPathCairo.cpp: Added.
4045         (WebCore::getPathSurface): Getting a static cairo surface.
4046         (WebCore::CairoPath::CairoPath): Moved the implementation of the constructor 
4047         into the CPP file.
4048         * platform/graphics/cairo/PlatformPathCairo.h: Renamed CairoPath.h to this.
4049         (WebCore::CairoPath::~CairoPath):
4050         (WebCore::CairoPath::context):
4051
4052 2011-04-14  Nat Duca  <nduca@chromium.org>
4053
4054         Reviewed by Darin Fisher.
4055
4056         [chromium] Add lowpass filter and graph to fps indicator
4057         https://bugs.webkit.org/show_bug.cgi?id=58186
4058
4059         * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
4060     &