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