6d8d55698b14b5f8a33e43303413f560e8cd20ad
[WebKit-https.git] / WebCore / ChangeLog
1 2010-06-18  Andy Estes  <aestes@apple.com>
2
3         Rubber-stamped by Sam Weinig.
4
5         Update copyright header.
6
7         * html/HTMLLinkElement.h:
8
9 2010-06-17  Andy Estes  <aestes@apple.com>
10
11         Reviewed by Dan Bernstein.
12
13         <rdar://problem/8091385> Prevent a crash in WebCore when removing a stylesheet link element in
14         in a listener to its beforeload event.
15         https://bugs.webkit.org/show_bug.cgi?id=40742
16         
17         Postpone loading of link elements until after they have been inserted into the DOM and
18         attached. This prevents DOM mutations triggered by beforeload handlers from firing in the
19         midst of DOM insertion, which can lead to assertion failures and crashes.
20
21         Test: fast/dom/beforeload/remove-link-in-beforeload-listener.html
22
23         * html/HTMLLinkElement.cpp:
24         (WebCore::HTMLLinkElement::HTMLLinkElement): Initialize m_shouldProcessAfterAttach to false.
25         (WebCore::HTMLLinkElement::processCallback): Add a static callback function which calls
26         HTMLLinkElement::process().
27         (WebCore::HTMLLinkElement::insertedIntoDocument): Instead of calling process() directly, set
28         m_shouldProcessAfterAttach to true to indicate that process() should be called after attach().
29         (WebCore::HTMLLinkElement::removedFromDocument): Set m_shouldProcessAfterAttach to false.
30         (WebCore::HTMLLinkElement::attach): If m_shouldProcessAfterAttach is true, register
31         HTMLLinkElement::processCallback() as a post-attach callback.
32         * html/HTMLLinkElement.h: Add m_shouldProcessAfterAttach.
33         (WebCore::HTMLLinkElement::canLazyAttach): Override canLazyAttach() to return false to
34         indicate that a full attach should be performed.  This ensures the post-attach callbacks are
35         fired.
36
37 2010-06-18  Chris Fleizach  <cfleizach@apple.com>
38
39         Unreviewed. Windows build fix.
40
41         AX: presentational role needs to be inherited by required elements
42         https://bugs.webkit.org/show_bug.cgi?id=40132
43
44         * accessibility/AccessibilityRenderObject.cpp:
45         (WebCore::AccessibilityRenderObject::inheritsPresentationalRole):
46
47 2010-06-18  Chris Fleizach  <cfleizach@apple.com>
48
49         Reviewed by David Kilzer.
50
51         AX: presentational role needs to be inherited by required elements
52         https://bugs.webkit.org/show_bug.cgi?id=40132
53
54         Test: platform/mac/accessibility/inherited-presentational-lists.html
55
56         * accessibility/AccessibilityRenderObject.cpp:
57         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
58         (WebCore::AccessibilityRenderObject::inheritsPresentationalRole):
59         * accessibility/AccessibilityRenderObject.h:
60         (WebCore::AccessibilityRenderObject::node):
61
62 2010-06-18  Darin Adler  <darin@apple.com>
63
64         Fix GTK build after reflection change.
65
66         * bindings/scripts/CodeGeneratorGObject.pm: Changed code
67         that emits setters to convey the correct type of the attribute.
68         The GObject code generator takes a different approach to attributes
69         than the others, so it's hacked a bit to make it more like them.
70         We should find a way to share more code between the different generators.
71
72         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
73         Updated to expect correct results.
74
75 2010-06-18  Yury Semikhatsky  <yurys@chromium.org>
76
77         Unreviewed: Qt build fix.
78
79         * inspector/InspectorController.cpp:
80
81 2010-06-18  Justin Garcia  <justin.garcia@apple.com>
82
83         Reviewed by Ojan Vafai.
84
85         https://bugs.webkit.org/show_bug.cgi?id=39798
86         No selection change notification for editing operation that doesn't change the selection's DOM position
87         
88         Some editing operations change the selection visually without affecting its position within 
89         the DOM.  This was previously known to occur for certain typing commands, but it can also 
90         occur for some Pastes and changes to block style.
91
92         * editing/Editor.cpp:
93         (WebCore::Editor::appliedEditing):
94         (WebCore::Editor::unappliedEditing):
95         (WebCore::Editor::reappliedEditing):
96         (WebCore::Editor::changeSelectionAfterCommand):
97         * editing/Editor.h:
98
99 2010-06-18  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
100
101         Unreviewed build fix.
102
103         [EFL] Build break on Debug build.
104         https://bugs.webkit.org/show_bug.cgi?id=40810
105
106         * CMakeLists.txt: Add CSSPreloadScanner.cpp
107
108 2010-06-18  Pavel Podivilov  <podivilov@chromium.org>
109
110         Reviewed by Yury Semikhatsky.
111
112         Web Inspector: persist breakpoints in inspector settings.
113         https://bugs.webkit.org/show_bug.cgi?id=14190
114
115         * GNUmakefile.am:
116         * WebCore.gypi:
117         * WebCore.pro:
118         * WebCore.vcproj/WebCore.vcproj:
119         * WebCore.xcodeproj/project.pbxproj:
120         * inspector/InspectorController.cpp:
121         (WebCore::InspectorController::InspectorController):
122         (WebCore::InspectorController::setSessionSettings):
123         (WebCore::InspectorController::didCommitLoad):
124         (WebCore::InspectorController::setBreakpoint):
125         (WebCore::InspectorController::removeBreakpoint):
126         (WebCore::InspectorController::didParseSource):
127         (WebCore::InspectorController::breakpointsSettingKey):
128         (WebCore::InspectorController::loadBreakpoints):
129         (WebCore::InspectorController::saveBreakpoints):
130         * inspector/InspectorController.h:
131         * inspector/InspectorValues.cpp:
132         (WebCore::InspectorValue::parseJSON):
133         * inspector/InspectorValues.h:
134         * inspector/ScriptBreakpoint.cpp: Added.
135         (WebCore::ScriptBreakpoint::sourceBreakpointsFromInspectorObject):
136         (WebCore::ScriptBreakpoint::inspectorObjectFromSourceBreakpoints):
137         * inspector/ScriptBreakpoint.h:
138         * inspector/front-end/BreakpointManager.js:
139         (WebInspector.BreakpointManager.prototype.addBreakpoint):
140         (WebInspector.BreakpointManager.prototype.restoredBreakpoint):
141         (WebInspector.BreakpointManager.prototype.breakpointsForSourceID):
142         (WebInspector.BreakpointManager.prototype.breakpointsForURL):
143         (WebInspector.BreakpointManager.prototype._addBreakpoint):
144         * inspector/front-end/inspector.js:
145         (WebInspector.restoredBreakpoint):
146
147 2010-06-18  Darin Adler  <darin@apple.com>
148
149         Reviewed by Sam Weinig.
150
151         Implement additional DOM attribute reflection for bindings
152         https://bugs.webkit.org/show_bug.cgi?id=39936
153
154         - Added support for [Reflect] for long, unsigned long, and boolean
155           attributes.
156         - Fixed code that set attributes like this: <video controls="controls">
157           to instead set them like this: <video controls>.
158         - Added lots more uses of [Reflect].
159         - Removed now-unneeded [ConvertFromString].
160         - Made [Reflect] imply [ConvertNullToNullString] so we can get rid
161           of most uses of the latter.
162         - Made [Reflect] automatically lowercase the name of the reflected
163           content attribute to minimize the need to specify a custom content
164           attribute name.
165
166         One thing this patch does *not* do is remove the unneeded functions
167         in the various DOM classes that are no longer used by the bindings.
168         We should do that in a followup.
169
170         * bindings/scripts/CodeGenerator.pm: Added new functions so code
171         can be shared across bindings, GetterExpressionPrefix and
172         SetterExpressionPrefix. We can do a lot more refactoring like
173         this in the future.
174
175         * bindings/scripts/CodeGeneratorCPP.pm: Removed unneeded
176         ConvertFromString handling, changed to use the new
177         GetterExpressionPrefix and SetterExpressionPrefix functions
178         to better handle reflected DOM attributes.
179
180         * bindings/scripts/CodeGeneratorGObject.pm: Removed unneeded
181         ConvertFromString handling, changed to use the new
182         GetterExpressionPrefix and SetterExpressionPrefix functions
183         to better handle reflected DOM attributes. Fixed a few things
184         in the output so the .cpp file will have more WebKit style.
185         The .h file should be GTK style, but the .cpp file can be the
186         standard WebKit style eventually.
187
188         * bindings/scripts/CodeGeneratorJS.pm: Changed to use the new
189         GetterExpressionPrefix and SetterExpressionPrefix functions
190         and removed a now-unneeded IsSVGAnimatedType special case since
191         the new functions take care of it. Made reflected attributes
192         automatically convert null to the null string without a
193         separate ConvertNullToNullString attribute.
194
195         * bindings/scripts/CodeGeneratorObjC.pm: Changed to use the new
196         GetterExpressionPrefix and SetterExpressionPrefix functions
197         and removed a now-unneeded IsSVGAnimatedType special case since
198         the new functions take care of it. Redid the special cases for
199         ownerDocument and for operator to fit better with the new code
200         paths. Removed unneeded ConvertFromString handling.
201
202         * bindings/scripts/CodeGeneratorV8.pm: Changed to use the new
203         GetterExpressionPrefix and SetterExpressionPrefix functions
204         and removed a now-unneeded IsSVGAnimatedType special case since
205         the new functions take care of it. Made reflected attributes
206         automatically convert null to the null string without a
207         separate ConvertNullToNullString attribute.
208
209         * bindings/scripts/test/TestObj.idl: Added some test cases for
210         content attribute reflection and for exceptions in string-typed
211         attributes.
212
213         * bindings/scripts/test/CPP/WebKitDOMTestObj.cpp: Updated.
214         * bindings/scripts/test/CPP/WebKitDOMTestObj.h: Ditto.
215         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp: Ditto.
216         * bindings/scripts/test/GObject/WebKitDOMTestObj.h: Ditto.
217         * bindings/scripts/test/JS/JSTestObj.cpp: Ditto.
218         * bindings/scripts/test/JS/JSTestObj.h: Ditto.
219         * bindings/scripts/test/ObjC/DOMTestObj.h: Ditto.
220         * bindings/scripts/test/ObjC/DOMTestObj.mm: Ditto.
221         * bindings/scripts/test/V8/V8TestObj.cpp: Ditto.
222
223         * dom/Element.cpp:
224         (WebCore::Element::getIntegralAttribute): Added.
225         (WebCore::Element::setIntegralAttribute): Added.
226         (WebCore::Element::getUnsignedIntegralAttribute): Added.
227         (WebCore::Element::setUnsignedIntegralAttribute): Added.
228         * dom/Element.h: Added new attribute get/set functions for bindings.
229
230         * html/HTMLMediaElement.cpp:
231         (WebCore::HTMLMediaElement::isURLAttribute): Added. Returns true for
232         srcAttr.
233         * html/HTMLMediaElement.h: Added isURLAttribute.
234
235         * html/HTMLVideoElement.cpp:
236         (WebCore::HTMLVideoElement::isURLAttribute): Changed to call
237         HTMLMediaElement::isURLAttribute before checking for posterAttr.
238
239         * html/HTMLAnchorElement.idl:
240         * html/HTMLAppletElement.idl:
241         * html/HTMLAreaElement.idl:
242         * html/HTMLBRElement.idl:
243         * html/HTMLBaseElement.idl:
244         * html/HTMLBaseFontElement.idl:
245         * html/HTMLBlockquoteElement.idl:
246         * html/HTMLBodyElement.idl:
247         * html/HTMLButtonElement.idl:
248         * html/HTMLDListElement.idl:
249         * html/HTMLDirectoryElement.idl:
250         * html/HTMLDivElement.idl:
251         * html/HTMLElement.idl:
252         * html/HTMLEmbedElement.idl:
253         * html/HTMLFontElement.idl:
254         * html/HTMLFormElement.idl:
255         * html/HTMLFrameElement.idl:
256         * html/HTMLFrameSetElement.idl:
257         * html/HTMLHRElement.idl:
258         * html/HTMLHeadElement.idl:
259         * html/HTMLHeadingElement.idl:
260         * html/HTMLHtmlElement.idl:
261         * html/HTMLIFrameElement.idl:
262         * html/HTMLImageElement.idl:
263         * html/HTMLInputElement.idl:
264         * html/HTMLIsIndexElement.idl:
265         * html/HTMLLIElement.idl:
266         * html/HTMLLabelElement.idl:
267         * html/HTMLLegendElement.idl:
268         * html/HTMLLinkElement.idl:
269         * html/HTMLMapElement.idl:
270         * html/HTMLMediaElement.idl:
271         * html/HTMLMenuElement.idl:
272         * html/HTMLMetaElement.idl:
273         * html/HTMLModElement.idl:
274         * html/HTMLOListElement.idl:
275         * html/HTMLObjectElement.idl:
276         * html/HTMLOptGroupElement.idl:
277         * html/HTMLOptionElement.idl:
278         * html/HTMLParagraphElement.idl:
279         * html/HTMLParamElement.idl:
280         * html/HTMLPreElement.idl:
281         * html/HTMLQuoteElement.idl:
282         * html/HTMLScriptElement.idl:
283         * html/HTMLStyleElement.idl:
284         * html/HTMLTableCaptionElement.idl:
285         * html/HTMLTableCellElement.idl:
286         * html/HTMLTableColElement.idl:
287         * html/HTMLTableElement.idl:
288         * html/HTMLTableRowElement.idl:
289         * html/HTMLTableSectionElement.idl:
290         * html/HTMLTextAreaElement.idl:
291         * html/HTMLUListElement.idl:
292         * html/HTMLVideoElement.idl:
293         * svg/SVGElement.idl:
294         Added more uses of [Reflect]. Got rid of uses of [ConvertNullToNullString] that
295         are now unneeded since [Reflect] now implies that. Changed formatting to be
296         simpler and consistent without all the lining up and multiple lines.
297
298 2010-06-17  Dumitru Daniliuc  <dumi@chromium.org>
299
300         Reviewed by Dimitri Glazkov.
301
302         Remove some unnecessary checks that cause compiler warnings.
303         https://bugs.webkit.org/show_bug.cgi?id=40772
304
305         * bindings/v8/custom/V8SQLResultSetRowListCustom.cpp:
306         (WebCore::V8SQLResultSetRowList::itemCallback):
307         * bindings/v8/npruntime.cpp:
308
309 2010-06-18  Mikhail Naganov  <mnaganov@chromium.org>
310
311         Reviewed by Yury Semikhatsky.
312
313         Implement 'takeHeapSnapshot' in InspectorController.
314
315         https://bugs.webkit.org/show_bug.cgi?id=40834
316
317         * bindings/js/ScriptProfiler.h:
318         (WebCore::ScriptProfiler::takeHeapSnapshot):
319         * bindings/v8/ScriptProfiler.cpp:
320         (WebCore::ScriptProfiler::takeHeapSnapshot):
321         * bindings/v8/ScriptProfiler.h:
322         * inspector/InspectorBackend.cpp:
323         (WebCore::InspectorBackend::takeHeapSnapshot):
324         * inspector/InspectorBackend.h:
325         * inspector/InspectorBackend.idl:
326         * inspector/InspectorController.cpp:
327         (WebCore::InspectorController::takeHeapSnapshot):
328         * inspector/InspectorController.h:
329
330 2010-06-18  Dan Bernstein  <mitz@apple.com>
331
332         Reviewed by Anders Carlsson.
333
334         REGRESSION (r61379?): Assertion failure in Element::getURLAttribute() when accessing the src attribute of a script element
335         https://bugs.webkit.org/show_bug.cgi?id=40831
336
337         Test: fast/dom/HTMLScriptElement/isURLAttribute.html
338
339         * html/HTMLScriptElement.cpp:
340         (WebCore::HTMLScriptElement::isURLAttribute): Check for the 'src' attribute.
341
342 2010-06-18  Sheriff Bot  <webkit.review.bot@gmail.com>
343
344         Unreviewed, rolling out r61405.
345         http://trac.webkit.org/changeset/61405
346         https://bugs.webkit.org/show_bug.cgi?id=40838
347
348         broke chromium mac compile (Requested by tonyg-cr1 on
349         #webkit).
350
351         * bindings/v8/ScriptSourceCode.h:
352         (WebCore::ScriptSourceCode::ScriptSourceCode):
353         * bindings/v8/V8Proxy.cpp:
354         (WebCore::V8Proxy::compileScript):
355         (WebCore::V8Proxy::evaluate):
356         * bindings/v8/V8Proxy.h:
357
358 2010-06-18  Zhenyao Mo  <zmo@google.com>
359
360         Reviewed by Dimitri Glazkov.
361
362         Fix WebGLRenderingContext helper functions find{Texture/Renderbuffer/Buffer}
363         https://bugs.webkit.org/show_bug.cgi?id=40176
364
365         * html/canvas/WebGLBuffer.cpp: Remove constructor with existing name.
366         * html/canvas/WebGLBuffer.h: Ditto.
367         * html/canvas/WebGLRenderingContext.cpp:
368         (WebCore::WebGLRenderingContext::getVertexAttrib): Use findBuffer instead of creating a new WebGLBuffer.
369         (WebCore::WebGLRenderingContext::findTexture): Deal with name == 0 case and return raw pointer.
370         (WebCore::WebGLRenderingContext::findRenderbuffer): Ditto.
371         (WebCore::WebGLRenderingContext::findBuffer): Find WebGLBuffer object using given name.
372         * html/canvas/WebGLRenderingContext.h: Add findBuffer function declaration, change return type to raw pointer.
373
374 2010-06-18  Tony Gentilcore  <tonyg@chromium.org>
375
376         Reviewed by David Levin.
377
378         Persist V8's ScriptData to the memory cache.
379         https://bugs.webkit.org/show_bug.cgi?id=38661
380
381         This stores V8's ScriptData in the memory cache and also causes the
382         network platform layer to be notified of the available cacheable
383         metadata.
384
385         Chromium's morejs benchmark showed a ~7% improvement when this was
386         originally submitted (before it had to be rolled back).
387
388         Test: fast/js/parser-high-byte-character.html
389
390         * bindings/v8/ScriptSourceCode.h:
391         (WebCore::ScriptSourceCode::ScriptSourceCode):
392         (WebCore::ScriptSourceCode::cachedScript):
393         * bindings/v8/V8Proxy.cpp:
394         (WebCore::V8Proxy::compileScript):
395         (WebCore::V8Proxy::precompileScript):
396         (WebCore::V8Proxy::evaluate):
397         * bindings/v8/V8Proxy.h:
398
399 2010-06-18  Anton Muhin  <antonm@chromium.org>
400
401         Reviewed by Dimitri Glazkov.
402
403         [v8] Finish migration to new named property query API
404         https://bugs.webkit.org/show_bug.cgi?id=40771
405         Remove definition which allowed gradual transition to new API.
406         See https://bugs.webkit.org/show_bug.cgi?id=40303 for first phase.
407
408         * config.h:
409
410 2010-06-17  Pavel Feldman  <pfeldman@chromium.org>
411
412         Reviewed by Yury Semikhatsky.
413
414         Web Inspector: bring XHR console records back.
415         - adds "Enable XHR Monitor" / "Disable XHR Monitor" actions to the console's context menu
416         - make the chosen option persist in the settings.
417
418         https://bugs.webkit.org/show_bug.cgi?id=40799
419
420         * English.lproj/localizedStrings.js:
421         * inspector/InspectorBackend.cpp:
422         (WebCore::InspectorBackend::disableSearchingForNode):
423         (WebCore::InspectorBackend::enableMonitoringXHR):
424         (WebCore::InspectorBackend::disableMonitoringXHR):
425         * inspector/InspectorBackend.h:
426         * inspector/InspectorBackend.idl:
427         * inspector/InspectorController.cpp:
428         (WebCore::InspectorController::InspectorController):
429         (WebCore::InspectorController::setMonitoringXHR):
430         (WebCore::InspectorController::didLoadResourceFromMemoryCache):
431         (WebCore::InspectorController::identifierForInitialRequest):
432         (WebCore::InspectorController::resourceRetrievedByXMLHttpRequest):
433         (WebCore::InspectorController::ensureSettingsLoaded):
434         * inspector/InspectorController.h:
435         * inspector/InspectorFrontend.cpp:
436         (WebCore::InspectorFrontend::monitoringXHRWasEnabled):
437         (WebCore::InspectorFrontend::monitoringXHRWasDisabled):
438         * inspector/InspectorFrontend.h:
439         * inspector/front-end/ConsoleView.js:
440         (WebInspector.ConsoleView.prototype._handleContextMenuEvent):
441         (WebInspector.ConsoleView.prototype._registerShortcuts):
442         * inspector/front-end/InjectedScript.js:
443         (injectedScriptConstructor.):
444         * inspector/front-end/InspectorBackendStub.js:
445         (.WebInspector.InspectorBackendStub):
446         (.WebInspector.InspectorBackendStub.prototype.enableMonitoringXHR):
447         (.WebInspector.InspectorBackendStub.prototype.disableMonitoringXHR):
448         * inspector/front-end/inspector.js:
449         (WebInspector.monitoringXHRWasEnabled):
450         (WebInspector.monitoringXHRWasDisabled):
451         * xml/XMLHttpRequest.cpp:
452         (WebCore::XMLHttpRequest::didFinishLoading):
453
454 2010-06-18  Nikolas Zimmermann  <nzimmermann@rim.com>
455
456         Reviewed by Dirk Schulze.
457
458         Modernize SVG Text code, following the HTML design
459         https://bugs.webkit.org/show_bug.cgi?id=40663
460
461         SVG Text does not support subpixel positioning
462         https://bugs.webkit.org/show_bug.cgi?id=12172
463
464         RenderSVGText can't do partial repaints
465         https://bugs.webkit.org/show_bug.cgi?id=15386
466
467         HTML and SVG need to share more text painting code
468         https://bugs.webkit.org/show_bug.cgi?id=15644
469
470         Rewrite SVG Text rendering, only keeping the layout of the actual characters/chunks as it was.
471         We're now drawing SVG Text very similar to HTML Text, utilizing the SVGInlineFlowBox/SVGInlineTextBox structure,
472         instead of painting all text content of a <text> element from the SVGRootInlineBox, as it was the last years.
473
474         Rough overview of the changes:
475         - Partial repainting support for text selections (startPos/endPos are respected), no more redrawing of the whole <text> content while selecting
476         - Subpixel positioning (near pixel-perfect rendering for all W3C tests that contain text, finally!)
477           -> much better textPath results, characters now align as expected, as all rounding hacks are disabled for SVG text runs, and subpixel precision is used while painting
478         - No more custom handling of selection, the standard methods offsetFromPosition() / selectionRectForText() are used instead.
479         - Selection works as expected on stretched/squeezed text (lengthAdjust="spacingAndGlyphs"), takes 'includePartialGlyphs' into account - just like HTML text
480         - Correct text decoration drawing (proper with and positions and rendering-order, underline/overline before text, strike-through afterwards)
481         - Proper sizing of all InlineBoxes, starting from the SVGRootInlineBox, down to every single flow & text box
482           -> correct DRT results, no more weird negative offsets of text runs, etc. Looks exactly like the HTML text test results.
483         - Rewritten SVGTextContentElement API to take per-character / per-chunk transformations into account.
484         - Speeeeeed! Drawing is much faster now.
485
486         Add 24 new testcases covering basic selection features and the SVGTextContentElement API. Each test draws a half-opaque red rectangle, calculated using
487         SVGTextContentElement API to highlight the area that is supposed to be selected. Then eventSender API is utilized to move the mouse to the calculated
488         start origin, holding it down and moving it to the end position.
489
490         A detailed list of tests that show progression, can be found in the corresponding LayoutTests/ChangeLog.
491         Note that this requires a rebaselining of all SVG tests containing text elements.
492
493         Tests: svg/hixie/text/001.xml (moved from svg/hixie/text/001-broken.xml)
494                svg/text/lengthAdjust-text-metrics.html
495                svg/text/select-textLength-spacing-squeeze-1.svg
496                svg/text/select-textLength-spacing-squeeze-2.svg
497                svg/text/select-textLength-spacing-squeeze-3.svg
498                svg/text/select-textLength-spacing-squeeze-4.svg
499                svg/text/select-textLength-spacing-stretch-1.svg
500                svg/text/select-textLength-spacing-stretch-2.svg
501                svg/text/select-textLength-spacing-stretch-3.svg
502                svg/text/select-textLength-spacing-stretch-4.svg
503                svg/text/select-textLength-spacingAndGlyphs-squeeze-1.svg
504                svg/text/select-textLength-spacingAndGlyphs-squeeze-2.svg
505                svg/text/select-textLength-spacingAndGlyphs-squeeze-3.svg
506                svg/text/select-textLength-spacingAndGlyphs-squeeze-4.svg
507                svg/text/select-textLength-spacingAndGlyphs-stretch-1.svg
508                svg/text/select-textLength-spacingAndGlyphs-stretch-2.svg
509                svg/text/select-textLength-spacingAndGlyphs-stretch-3.svg
510                svg/text/select-textLength-spacingAndGlyphs-stretch-4.svg
511                svg/text/select-x-list-1.svg
512                svg/text/select-x-list-2.svg
513                svg/text/select-x-list-3.svg
514                svg/text/select-x-list-4.svg
515                svg/text/select-x-list-with-tspans-1.svg
516                svg/text/select-x-list-with-tspans-2.svg
517                svg/text/select-x-list-with-tspans-3.svg
518                svg/text/select-x-list-with-tspans-4.svg
519
520         * rendering/InlineBox.h: Remove not needed isInlineBox() method.
521         (WebCore::InlineBox::isInlineTextBox): Constify this method.
522         (WebCore::InlineBox::isSVGInlineTextBox): Added, with ENABLE(SVG) guards, just like the existing isSVGRootInlineBox().
523         (WebCore::InlineBox::isSVGRootInlineBox): Constify this method.
524         (WebCore::InlineBox::calculateBoundaries): Added, with ENABLE(SVG) guards, used to calculate the whole boundaries of a InlineText/FlowBox, only used in SVG text.
525         * rendering/InlineFlowBox.h: Devirtualize placeBoxesHorizontally(), SVG no more overrides it.
526         * rendering/InlineTextBox.h: Virtualize selectionStartEnd() - SVGInlineTextBox needs to change start/endPositions based on the current text chunk part that it's rendering.
527                                      SVGTextChunkLayoutInfo.h contains a detailed documentation what a SVGTextChunk/SVGTextChunkPart is, and why they are necessary.
528         (WebCore::InlineTextBox::isInlineTextBox): Constify this method.
529         * rendering/RenderBlock.h:
530         (WebCore::RenderBlock::forceLayoutInlineChildren): Add helper method, used only by RenderSVGText, to use a simplified layout strategy, which is a big speed win.
531         * rendering/RenderBlockLineLayout.cpp:
532         (WebCore::RenderBlock::computeHorizontalPositionsForLine): Remove all isSVGText() special cases, as this function is not called anymore for SVG text.
533         (WebCore::RenderBlock::layoutInlineChildren): Don't call computeHorizontalPositionsForLine() for SVG text. computePerCharacterLayoutInformation() overrides it anyway.
534         * rendering/RenderSVGInline.cpp: Remove custom absoluteRects/absoluteQuads code, all shared with RenderInline now.
535         (WebCore::RenderSVGInline::clippedOverflowRectForRepaint): Added, forward to SVGRenderBase, just like all other non-text SVG renderers do.
536         (WebCore::RenderSVGInline::computeRectForRepaint): Ditto.
537         (WebCore::RenderSVGInline::mapLocalToContainer): Ditto
538         * rendering/RenderSVGInline.h: 
539         * rendering/RenderSVGInlineText.cpp: Remove destroy() hack, which called setNeedsLayoutAndPrefWidthsRecalc/repaint on destruction.
540                                              As repaint rects work properly now, this hack is no longer necessary, it was only hiding the real problem.
541         (WebCore::RenderSVGInlineText::styleDidChange): Don't skip RenderText::styleDidChange() anymore, which automatically schedules layout changes for us.
542         (WebCore::RenderSVGInlineText::localCaretRect): Remove outdated comment, localCaretRect() is not yet needed in SVG text code.
543         * rendering/RenderSVGInlineText.h: Remove custom absoluteRects/absoluteQuads/selectionRectForRepaint/positionForPoint/destroy/computeRectForRepaint* code, all shared with RenderText now.
544         * rendering/RenderSVGText.cpp: 
545         (WebCore::RenderSVGText::mapLocalToContainer): Take x/y translation into account, but do NOT include in localToParentTransform(), as that would affect rendering.
546         (WebCore::RenderSVGText::layout): Use super-simplified layout strategy, removing a lot of uncessary stuff done by RenderBlock, that SVG does not need.
547         (WebCore::RenderSVGText::absoluteRects): Remove dead-code, retreving the RenderSVGRoot* object, not necessary since a longer time.
548         (WebCore::RenderSVGText::absoluteQuads): Ditto.
549         (WebCore::RenderSVGText::paint): Early exit if we're not in PaintPhaseForeground/PaintPhaseSelfOutline. We're not interessted in other phases.
550         (WebCore::RenderSVGText::strokeBoundingBox): Fix stroke width calculation, no need to special case SVGFonts.
551         * rendering/RenderSVGText.h: Remove updateFirstLineBlock/updateFirstLetter overrides, the new RenderSVGText::layout() code, doesn't use these methods at all.
552                                      We asked RenderBlock to layout before, which was calling updateFirstLetter & co, this is gone now, as it was all not needed.
553         (WebCore::RenderSVGText::objectBoundingBox): Directly return the frameRect here, inlined for speed.
554         * rendering/RootInlineBox.cpp:
555         (WebCore::RootInlineBox::verticallyAlignBoxes): Early-exit if we're a SVGRootInlineBox. SVG handles this on its own.
556         * rendering/RootInlineBox.h: Devirtualize verticallyAlignBoxes(), SVG no longer overrides it. Remove virtual computePerCharacterLayoutInformation() method, only lives in SVGRootInlineBox now.
557         * rendering/SVGCharacterData.h: Remove no longer needed SVGTextDecorationInfo.
558         * rendering/SVGCharacterLayoutInfo.cpp: Don't pass a reference to a Vector<SVGChar> to SVGCharacterLayoutInfo, let it create it.
559         (WebCore::SVGCharacterLayoutInfo::SVGCharacterLayoutInfo):
560         * rendering/SVGCharacterLayoutInfo.h:
561         * rendering/SVGInlineFlowBox.cpp: 
562         (WebCore::SVGInlineFlowBox::paint): Ask children to paint.
563         (WebCore::SVGInlineFlowBox::calculateBoundaries): Calculate boundaries by uniting all direct children boundaries.
564         * rendering/SVGInlineFlowBox.h: Remove placeBoxesHorizontally, which does not get called anymore, and does not need to be overriden.
565         * rendering/SVGInlineTextBox.cpp: 
566         (WebCore::SVGInlineTextBox::SVGInlineTextBox): Don't use abbrevations for variable names, initialize new member variables.
567         (WebCore::SVGInlineTextBox::measureCharacter): New helper function extracted from buildLayoutInformation, replacing calculateGlyphWidth/Height.
568         (WebCore::SVGInlineTextBox::offsetForPosition): Implement this method by utilizing Font::offsetForPosition(), but respecting the text chunk parts.
569         (WebCore::SVGInlineTextBox::positionForOffset): No change here, still not used.
570         (WebCore::SVGInlineTextBox::selectionRect): Rewritten, utilizing Font::selectionRectForText(), taking text chunk parts into account, and the supplied startPos/endPos.
571         (WebCore::SVGInlineTextBox::paint): Rewritten, to handle paint servers much more elegant, than the old solution. See code for details, too much to explain here.
572         (WebCore::SVGInlineTextBox::acquirePaintingResource): Helper function, used from paint().
573         (WebCore::SVGInlineTextBox::releasePaintingResource): Ditto.
574         (WebCore::SVGInlineTextBox::prepareGraphicsContextForTextPainting): Ditto.
575         (WebCore::SVGInlineTextBox::restoreGraphicsContextAfterTextPainting): Ditto.
576         (WebCore::SVGInlineTextBox::constructTextRun): Helper function centralizing the creation of a TextRun object, used to draw/measure SVG text.
577         (WebCore::SVGInlineTextBox::mapStartEndPositionsIntoChunkPartCoordinates): Important helper function, mapping a startPos/endPos from InlineTextBox
578                                                                                    coordinate space to the SVGInlineTextBox, respecting the current text chunk part.
579         (WebCore::SVGInlineTextBox::selectionStartEnd): Call InlineTextBox::selectionStartEnd(), and apply post fixes when m_currentChunkPart is set. (called when painting a selected chunk part)
580         (WebCore::positionOffsetForDecoration): Refactored from old paintDecoration() code.
581         (WebCore::thicknessForDecoration): Ditto.
582         (WebCore::findRenderObjectDefininingTextDecoration): Ditto.
583         (WebCore::SVGInlineTextBox::paintDecoration): Ditto. (Can not share the code with HTML, as we need floating point precision, and directly call fillRect, instead of drawHighlightForText.)
584         (WebCore::SVGInlineTextBox::paintDecorationWithStyle): Ditto.
585         (WebCore::SVGInlineTextBox::paintSelection): New method, painting text selections with floating-point precision.
586         (WebCore::SVGInlineTextBox::paintText): New method, painting text with floating-point precision, correctly handling selected text, removing the need for special SVG text sub-paint phases.
587                                                 (GlyphFill/StrokeSelectionPhase, GlyphFill/StrokePhase)
588         (WebCore::SVGInlineTextBox::buildLayoutInformation): Use new measureCharacter() helper function, renamed some variables, to avoid abbrevations.
589         (WebCore::SVGInlineTextBox::calculateGlyphBoundaries): Rewritten to use new measureCharacter() helper function.
590         (WebCore::SVGInlineTextBox::calculateBoundaries): Rewritten to take text chunk parts into account, serves as central method used to layout InlineBoxes (see SVGRootInlineBox.)
591         * rendering/SVGInlineTextBox.h:
592         (WebCore::SVGInlineTextBox::isSVGInlineTextBox): Added.
593         (WebCore::SVGInlineTextBox::setHeight): Rename variable, to avoid abbrevations.
594         (WebCore::SVGInlineTextBox::chunkTransformation): New helper function, returning the transformation, that gets applied to the complete text chunk, if any.
595         (WebCore::SVGInlineTextBox::setChunkTransformation): New helper function used by SVGRrootInlineBox, to set the chunk transformation, during text chunk part propagation phase.
596         (WebCore::SVGInlineTextBox::addChunkPartInformation): Ditto.
597         (WebCore::SVGInlineTextBox::svgTextChunkParts): Ditto.
598         * rendering/SVGRootInlineBox.cpp: Virtually rewritten, to be designed more like HTMLs RootInlineBox, diving into children for painting.
599         (WebCore::SVGRootInlineBox::paint): Ask children to paint, nothing more. No more traversing through the SVGTextChunks, figuring out which part to render, this is done in layout phase now.
600         (WebCore::SVGRootInlineBox::computePerCharacterLayoutInformation): Completly redesigned, see SVGTextChunkLayoutInfo.h for a high-level overview.
601         (WebCore::SVGRootInlineBox::buildLayoutInformation): Just small cleanups, nothing changed here.
602         (WebCore::SVGRootInlineBox::layoutChildBoxes): New helper function, extracted from old layoutInlineBoxes().
603         (WebCore::SVGRootInlineBox::layoutRootBox): Ditto.
604         (WebCore::SVGRootInlineBox::propagateTextChunkPartInformation): Key-concept of the new design, builds "text chunk parts" and propagates that knownledge to all child SVGInlineTextBoxes.
605         * rendering/SVGRootInlineBox.h:
606         (WebCore::SVGRootInlineBox::isSVGRootInlineBox): Constified method.
607         (WebCore::SVGRootInlineBox::setHeight): Change variable name, to avoid abbrevations.
608         * rendering/SVGTextChunkLayoutInfo.cpp: Remove if 0, enable compilation.
609         * rendering/SVGTextChunkLayoutInfo.h: Add large comment explaining text chunk parts, the key concept of the new design. Remove SVGTextChunkWalker & friends, no longer used.
610         (WebCore::SVGTextChunkPart::SVGTextChunkPart):
611         (WebCore::SVGTextChunkPart::isValid):
612         (WebCore::SVGTextChunk::SVGTextChunk):
613         (WebCore::SVGTextChunkLayoutInfo::SVGTextChunkLayoutInfo):
614         (WebCore::SVGTextChunkLayoutInfo::textChunks):
615         * rendering/SVGTextLayoutUtilities.cpp:
616         (WebCore::cummulatedWidthOfInlineBoxCharacterRange):
617         (WebCore::cummulatedHeightOfInlineBoxCharacterRange):
618         (WebCore::svgTextRunForInlineTextBox): Disable rounding hacks, explain parameters with comments, why they have which values.
619         * rendering/SVGTextLayoutUtilities.h: Remove SVGTextPaintSubphase and SVGTextPaintInfo.
620         * rendering/SVGTextQuery.cpp: Remove if 0, enable compilation.
621         * rendering/SVGTextQuery.h: Ditto.
622         * svg/SVGStyledElement.cpp: Very important change! Do not treat CSS attributes as recognized attributes, that would lead to setNeedsLayout() calls, reducing performance!
623                                     This hack existed, as we were not dealing with text updates correctly, now that RenderSVGInlineText::styleDidChange is fixed, it's no longer necessary.
624         (WebCore::SVGStyledElement::isKnownAttribute):
625         * svg/SVGTextContentElement.cpp: Completely remove the SVGTextContentElement API, that manually traversed all text chunks, instead use the new SVGTextQuery API.
626         (WebCore::SVGTextContentElement::getNumberOfChars):
627         (WebCore::SVGTextContentElement::getComputedTextLength):
628         (WebCore::SVGTextContentElement::getSubStringLength):
629         (WebCore::SVGTextContentElement::getStartPositionOfChar):
630         (WebCore::SVGTextContentElement::getEndPositionOfChar):
631         (WebCore::SVGTextContentElement::getExtentOfChar):
632         (WebCore::SVGTextContentElement::getRotationOfChar):
633         (WebCore::SVGTextContentElement::getCharNumAtPosition):
634         * svg/SVGTextElement.cpp: Very important change! Do not calls setNeedsLayout() on RenderSVGText, if childrenChanged() has been called.
635         * svg/SVGTextElement.h: Completly remove childrenChanged() - no longer necessary, updates work as expected without it now.
636
637 2010-06-18  Lucas De Marchi  <lucas.demarchi@profusion.mobi>
638
639         Reviewed by David Levin.
640
641         Fix compilation when filters are disabled. Revision r60689
642         changed the signature of SVGRenderBase::prepareToRenderSVGContent()
643         but didn't change the unsused parameters when filters are disabled.
644         https://bugs.webkit.org/show_bug.cgi?id=40625
645
646         No new tests. Compilation fix.
647
648         * rendering/SVGRenderSupport.cpp:
649         (WebCore::SVGRenderBase::prepareToRenderSVGContent):
650
651 2010-06-18  Adam Barth  <abarth@webkit.org>
652
653         Reviewed by Darin Adler.
654
655         noAccess url schemes block access to inline stylesheets
656         https://bugs.webkit.org/show_bug.cgi?id=32309
657
658         Instead of using baseURL() to grab the security context we should just
659         use finalURL directly.  When I wrote the original patch that added this
660         security check, finalURL didn't exist yet.
661
662         If finalURL is an empty URL, that means we generated the style sheet
663         from text that didn't have a URL.  It would be slightly safer to store
664         a bit on CSSStyleSheet indicating whether it came from an inline style
665         sheet, but I think this check is fairly accurate.
666
667         Test: http/tests/security/data-url-inline.css.html
668
669         * css/CSSStyleSheet.cpp:
670         (WebCore::CSSStyleSheet::cssRules):
671
672 2010-06-18  Adam Barth  <abarth@webkit.org>
673
674         Reviewed by Darin Adler.
675
676         Remove unneeded custom code for WebSocket.send
677         https://bugs.webkit.org/show_bug.cgi?id=38180
678
679         We don't appear to require a custom binding here.  The old function was
680         wacky in two ways:
681
682         1) It required all of its arguments.
683
684         2) If the toString of its argument threw, it would catch the exception
685            and re-throw a different exception.
686
687         I've kept the first behavior but changed the second (and documented it
688         with a test).
689
690         Test: websocket/tests/send-throw.html
691
692         * bindings/js/JSWebSocketCustom.cpp:
693         * bindings/v8/custom/V8WebSocketCustom.cpp:
694         * websockets/WebSocket.idl:
695
696 2010-06-15  Dumitru Daniliuc  <dumi@chromium.org>
697
698         Reviewed by Adam Barth.
699
700         Move isAvailable()/setIsAvailable() from Database/DatabaseSync to AbstractDatabase.
701         https://bugs.webkit.org/show_bug.cgi?id=39041
702
703         * WebCore.base.exp
704         * bindings/generic/RuntimeEnabledFeatures.cpp:
705         (WebCore::RuntimeEnabledFeatures::openDatabaseEnabled):
706         (WebCore::RuntimeEnabledFeatures::openDatabaseSyncEnabled):
707         * page/DOMWindow.cpp:
708         (WebCore::DOMWindow::openDatabase):
709         * storage/AbstractDatabase.cpp:
710         (WebCore::AbstractDatabase::isAvailable):
711         (WebCore::AbstractDatabase::setIsAvailable):
712         * storage/AbstractDatabase.h:
713         * storage/Database.cpp:
714         * storage/Database.h:
715         * storage/DatabaseSync.cpp:
716         * storage/DatabaseSync.h:
717         * workers/WorkerContext.cpp:
718         (WebCore::WorkerContext::openDatabase):
719         (WebCore::WorkerContext::openDatabaseSync):
720         * workers/WorkerContext.h:
721
722 2010-06-18  Adam Barth  <abarth@webkit.org>
723
724         Rubber-stamped by Eric Seidel.
725
726         Fix the namespace indent for HTML5Lexer.  This patch changes
727         white-space only.
728
729         * html/HTML5Lexer.h:
730         (WebCore::HTML5Lexer::):
731         (WebCore::HTML5Lexer::lineNumber):
732         (WebCore::HTML5Lexer::columnNumber):
733         (WebCore::HTML5Lexer::state):
734         (WebCore::HTML5Lexer::setState):
735         (WebCore::HTML5Lexer::skipLeadingNewLineForListing):
736         (WebCore::HTML5Lexer::InputStreamPreprocessor::InputStreamPreprocessor):
737         (WebCore::HTML5Lexer::InputStreamPreprocessor::nextInputCharacter):
738         (WebCore::HTML5Lexer::InputStreamPreprocessor::peek):
739         (WebCore::HTML5Lexer::InputStreamPreprocessor::advance):
740
741 2010-06-18  Fumitoshi Ukai  <ukai@chromium.org>
742
743         Unreviewed test breakage fix.
744
745         WebSocket: resume should not process buffer if already processing.
746         https://bugs.webkit.org/show_bug.cgi?id=39340
747
748         MessageLoop runs in main thread, so we don't need to use timer in worker thread.
749         Also, we should not use Timer in worker thread.
750
751         * websockets/ThreadableWebSocketChannelClientWrapper.h:
752         (WebCore::ThreadableWebSocketChannelClientWrapper::resume):
753         (WebCore::ThreadableWebSocketChannelClientWrapper::ThreadableWebSocketChannelClientWrapper):
754
755 2010-06-17  Sheriff Bot  <webkit.review.bot@gmail.com>
756
757         Unreviewed, rolling out r61379.
758         http://trac.webkit.org/changeset/61379
759         https://bugs.webkit.org/show_bug.cgi?id=40813
760
761         Broke multiple tests on all platforms (Requested by tkent on
762         #webkit).
763
764         * bindings/scripts/CodeGenerator.pm:
765         * bindings/scripts/CodeGeneratorCPP.pm:
766         * bindings/scripts/CodeGeneratorGObject.pm:
767         * bindings/scripts/CodeGeneratorJS.pm:
768         * bindings/scripts/CodeGeneratorObjC.pm:
769         * bindings/scripts/CodeGeneratorV8.pm:
770         * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
771         (WebDOMTestObj::attrWithException):
772         (WebDOMTestObj::setAttrWithException):
773         (WebDOMTestObj::attrWithSetterException):
774         (WebDOMTestObj::attrWithGetterException):
775         (WebDOMTestObj::setAttrWithGetterException):
776         * bindings/scripts/test/CPP/WebDOMTestObj.h:
777         * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
778         (webkit_dom_test_callback_callback_with_class1param):
779         (webkit_dom_test_callback_callback_with_class2param):
780         (webkit_dom_test_callback_callback_with_non_bool_return_type):
781         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
782         (webkit_dom_test_obj_void_method):
783         (webkit_dom_test_obj_void_method_with_args):
784         (webkit_dom_test_obj_int_method):
785         (webkit_dom_test_obj_int_method_with_args):
786         (webkit_dom_test_obj_obj_method):
787         (webkit_dom_test_obj_obj_method_with_args):
788         (webkit_dom_test_obj_method_that_requires_all_args):
789         (webkit_dom_test_obj_method_that_requires_all_args_and_throws):
790         (webkit_dom_test_obj_serialized_value):
791         (webkit_dom_test_obj_method_with_exception):
792         (webkit_dom_test_obj_with_dynamic_frame):
793         (webkit_dom_test_obj_with_dynamic_frame_and_arg):
794         (webkit_dom_test_obj_with_dynamic_frame_and_optional_arg):
795         (webkit_dom_test_obj_with_dynamic_frame_and_user_gesture):
796         (webkit_dom_test_obj_with_dynamic_frame_and_user_gesture_asad):
797         (webkit_dom_test_obj_with_script_state_void):
798         (webkit_dom_test_obj_with_script_state_obj):
799         (webkit_dom_test_obj_with_script_state_void_exception):
800         (webkit_dom_test_obj_with_script_state_obj_exception):
801         (webkit_dom_test_obj_with_script_execution_context):
802         (webkit_dom_test_obj_method_with_optional_arg):
803         (webkit_dom_test_obj_method_with_non_optional_arg_and_optional_arg):
804         (webkit_dom_test_obj_method_with_non_optional_arg_and_two_optional_args):
805         (webkit_dom_test_obj_get_read_only_int_attr):
806         (webkit_dom_test_obj_get_read_only_string_attr):
807         (webkit_dom_test_obj_get_read_only_test_obj_attr):
808         (webkit_dom_test_obj_get_int_attr):
809         (webkit_dom_test_obj_set_int_attr):
810         (webkit_dom_test_obj_get_long_long_attr):
811         (webkit_dom_test_obj_set_long_long_attr):
812         (webkit_dom_test_obj_get_unsigned_long_long_attr):
813         (webkit_dom_test_obj_set_unsigned_long_long_attr):
814         (webkit_dom_test_obj_get_string_attr):
815         (webkit_dom_test_obj_set_string_attr):
816         (webkit_dom_test_obj_get_test_obj_attr):
817         (webkit_dom_test_obj_set_test_obj_attr):
818         (webkit_dom_test_obj_get_attr_with_exception):
819         (webkit_dom_test_obj_set_attr_with_exception):
820         (webkit_dom_test_obj_get_attr_with_setter_exception):
821         (webkit_dom_test_obj_set_attr_with_setter_exception):
822         (webkit_dom_test_obj_get_attr_with_getter_exception):
823         (webkit_dom_test_obj_set_attr_with_getter_exception):
824         (webkit_dom_test_obj_get_script_string_attr):
825         (webkit_dom_test_obj_get_conditional_attr1):
826         (webkit_dom_test_obj_set_conditional_attr1):
827         (webkit_dom_test_obj_get_conditional_attr2):
828         (webkit_dom_test_obj_set_conditional_attr2):
829         (webkit_dom_test_obj_get_conditional_attr3):
830         (webkit_dom_test_obj_set_conditional_attr3):
831         (webkit_dom_test_obj_get_description):
832         (webkit_dom_test_obj_get_id):
833         (webkit_dom_test_obj_set_id):
834         (webkit_dom_test_obj_get_hash):
835         (webkit_dom_test_obj_set_property):
836         (webkit_dom_test_obj_get_property):
837         (webkit_dom_test_obj_class_init):
838         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
839         * bindings/scripts/test/JS/JSTestObj.cpp:
840         (WebCore::):
841         (WebCore::jsTestObjAttrWithException):
842         (WebCore::jsTestObjAttrWithSetterException):
843         (WebCore::jsTestObjAttrWithGetterException):
844         (WebCore::setJSTestObjAttrWithException):
845         (WebCore::setJSTestObjAttrWithGetterException):
846         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod):
847         * bindings/scripts/test/JS/JSTestObj.h:
848         * bindings/scripts/test/ObjC/DOMTestObj.h:
849         * bindings/scripts/test/ObjC/DOMTestObj.mm:
850         (-[DOMTestObj attrWithException]):
851         (-[DOMTestObj setAttrWithException:]):
852         (-[DOMTestObj attrWithSetterException]):
853         (-[DOMTestObj attrWithGetterException]):
854         (-[DOMTestObj setAttrWithGetterException:]):
855         * bindings/scripts/test/TestObj.idl:
856         * bindings/scripts/test/V8/V8TestObj.cpp:
857         (WebCore::TestObjInternal::attrWithExceptionAttrGetter):
858         (WebCore::TestObjInternal::attrWithExceptionAttrSetter):
859         (WebCore::TestObjInternal::attrWithSetterExceptionAttrGetter):
860         (WebCore::TestObjInternal::attrWithGetterExceptionAttrGetter):
861         (WebCore::TestObjInternal::attrWithGetterExceptionAttrSetter):
862         (WebCore::TestObjInternal::overloadedMethodCallback):
863         (WebCore::):
864         * dom/Element.cpp:
865         * dom/Element.h:
866         * html/HTMLAnchorElement.idl:
867         * html/HTMLAppletElement.idl:
868         * html/HTMLAreaElement.idl:
869         * html/HTMLBRElement.idl:
870         * html/HTMLBaseElement.idl:
871         * html/HTMLBaseFontElement.idl:
872         * html/HTMLBlockquoteElement.idl:
873         * html/HTMLBodyElement.idl:
874         * html/HTMLButtonElement.idl:
875         * html/HTMLDListElement.idl:
876         * html/HTMLDirectoryElement.idl:
877         * html/HTMLDivElement.idl:
878         * html/HTMLElement.idl:
879         * html/HTMLEmbedElement.idl:
880         * html/HTMLFontElement.idl:
881         * html/HTMLFormElement.idl:
882         * html/HTMLFrameElement.idl:
883         * html/HTMLFrameSetElement.idl:
884         * html/HTMLHRElement.idl:
885         * html/HTMLHeadElement.idl:
886         * html/HTMLHeadingElement.idl:
887         * html/HTMLHtmlElement.idl:
888         * html/HTMLIFrameElement.idl:
889         * html/HTMLImageElement.idl:
890         * html/HTMLInputElement.idl:
891         * html/HTMLIsIndexElement.idl:
892         * html/HTMLLIElement.idl:
893         * html/HTMLLabelElement.idl:
894         * html/HTMLLegendElement.idl:
895         * html/HTMLLinkElement.idl:
896         * html/HTMLMapElement.idl:
897         * html/HTMLMediaElement.idl:
898         * html/HTMLMenuElement.idl:
899         * html/HTMLMetaElement.idl:
900         * html/HTMLModElement.idl:
901         * html/HTMLOListElement.idl:
902         * html/HTMLObjectElement.idl:
903         * html/HTMLOptGroupElement.idl:
904         * html/HTMLOptionElement.idl:
905         * html/HTMLParagraphElement.idl:
906         * html/HTMLParamElement.idl:
907         * html/HTMLPreElement.idl:
908         * html/HTMLQuoteElement.idl:
909         * html/HTMLScriptElement.idl:
910         * html/HTMLStyleElement.idl:
911         * html/HTMLTableCaptionElement.idl:
912         * html/HTMLTableCellElement.idl:
913         * html/HTMLTableColElement.idl:
914         * html/HTMLTableElement.idl:
915         * html/HTMLTableRowElement.idl:
916         * html/HTMLTableSectionElement.idl:
917         * html/HTMLTextAreaElement.idl:
918         * html/HTMLUListElement.idl:
919         * html/HTMLVideoElement.idl:
920         * svg/SVGElement.idl:
921
922 2010-06-17  Rob Buis  <rwlbuis@gmail.com>
923
924         Reviewed by Dave Hyatt.
925
926         CSS3 "Property is declared twice in rule" test fails
927         https://bugs.webkit.org/show_bug.cgi?id=36282
928
929         Filter out duplicate properties in style declaration.
930
931         Test: fast/css/duplicate-property-in-rule.html
932
933         * css/CSSMutableStyleDeclaration.cpp: Filter out duplicate properties
934         (WebCore::CSSMutableStyleDeclaration::CSSMutableStyleDeclaration):
935         * css/CSSParser.cpp:
936         (WebCore::CSSParser::parseValue): Discard negative padding values
937         * css/CSSStyleSelector.cpp: Remove negative padding check
938         (WebCore::CSSStyleSelector::applyProperty):
939
940 2010-06-17  Darin Adler  <darin@apple.com>
941
942         Reviewed by Sam Weinig.
943
944         Implement additional DOM attribute reflection for bindings
945         https://bugs.webkit.org/show_bug.cgi?id=39936
946
947         - Added support for [Reflect] for long, unsigned long, and boolean
948           attributes.
949         - Fixed code that set attributes like this: <video controls="controls">
950           to instead set them like this: <video controls>.
951         - Added lots more uses of [Reflect].
952         - Removed now-unneeded [ConvertFromString].
953         - Made [Reflect] imply [ConvertNullToNullString] so we can get rid
954           of most uses of the latter.
955         - Made [Reflect] automatically lowercase the name of the reflected
956           content attribute to minimize the need to specify a custom content
957           attribute name.
958
959         One thing this patch does *not* do is remove the unneeded functions
960         in the various DOM classes that are no longer used by the bindings.
961         We should do that in a followup.
962
963         * bindings/scripts/CodeGenerator.pm: Added new functions so code
964         can be shared across bindings, GetterExpressionPrefix and
965         SetterExpressionPrefix. We can do a lot more refactoring like
966         this in the future.
967
968         * bindings/scripts/CodeGeneratorCPP.pm: Removed unneeded
969         ConvertFromString handling, changed to use the new
970         GetterExpressionPrefix and SetterExpressionPrefix functions
971         to better handle reflected DOM attributes.
972
973         * bindings/scripts/CodeGeneratorGObject.pm: Removed unneeded
974         ConvertFromString handling, changed to use the new
975         GetterExpressionPrefix and SetterExpressionPrefix functions
976         to better handle reflected DOM attributes. Fixed a few things
977         in the output so the .cpp file will have more WebKit style.
978         The .h file should be GTK style, but the .cpp file can be the
979         standard WebKit style eventually.
980
981         * bindings/scripts/CodeGeneratorJS.pm: Changed to use the new
982         GetterExpressionPrefix and SetterExpressionPrefix functions
983         and removed a now-unneeded IsSVGAnimatedType special case since
984         the new functions take care of it. Made reflected attributes
985         automatically convert null to the null string without a
986         separate ConvertNullToNullString attribute.
987
988         * bindings/scripts/CodeGeneratorObjC.pm: Changed to use the new
989         GetterExpressionPrefix and SetterExpressionPrefix functions
990         and removed a now-unneeded IsSVGAnimatedType special case since
991         the new functions take care of it. Redid the special cases for
992         ownerDocument and for operator to fit better with the new code
993         paths. Removed unneeded ConvertFromString handling.
994
995         * bindings/scripts/CodeGeneratorV8.pm: Changed to use the new
996         GetterExpressionPrefix and SetterExpressionPrefix functions
997         and removed a now-unneeded IsSVGAnimatedType special case since
998         the new functions take care of it. Made reflected attributes
999         automatically convert null to the null string without a
1000         separate ConvertNullToNullString attribute.
1001
1002         * bindings/scripts/test/TestObj.idl: Added some test cases for
1003         content attribute reflection and for exceptions in string-typed
1004         attributes.
1005
1006         * bindings/scripts/test/CPP/WebKitDOMTestObj.cpp: Updated.
1007         * bindings/scripts/test/CPP/WebKitDOMTestObj.h: Ditto.
1008         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp: Ditto.
1009         * bindings/scripts/test/GObject/WebKitDOMTestObj.h: Ditto.
1010         * bindings/scripts/test/JS/JSTestObj.cpp: Ditto.
1011         * bindings/scripts/test/JS/JSTestObj.h: Ditto.
1012         * bindings/scripts/test/ObjC/DOMTestObj.h: Ditto.
1013         * bindings/scripts/test/ObjC/DOMTestObj.mm: Ditto.
1014         * bindings/scripts/test/V8/V8TestObj.cpp: Ditto.
1015
1016         * dom/Element.cpp:
1017         (WebCore::Element::getIntegralAttribute): Added.
1018         (WebCore::Element::setIntegralAttribute): Added.
1019         (WebCore::Element::getUnsignedIntegralAttribute): Added.
1020         (WebCore::Element::setUnsignedIntegralAttribute): Added.
1021         * dom/Element.h: Added new attribute get/set functions for bindings.
1022
1023         * html/HTMLAnchorElement.idl:
1024         * html/HTMLAppletElement.idl:
1025         * html/HTMLAreaElement.idl:
1026         * html/HTMLBRElement.idl:
1027         * html/HTMLBaseElement.idl:
1028         * html/HTMLBaseFontElement.idl:
1029         * html/HTMLBlockquoteElement.idl:
1030         * html/HTMLBodyElement.idl:
1031         * html/HTMLButtonElement.idl:
1032         * html/HTMLDListElement.idl:
1033         * html/HTMLDirectoryElement.idl:
1034         * html/HTMLDivElement.idl:
1035         * html/HTMLElement.idl:
1036         * html/HTMLEmbedElement.idl:
1037         * html/HTMLFontElement.idl:
1038         * html/HTMLFormElement.idl:
1039         * html/HTMLFrameElement.idl:
1040         * html/HTMLFrameSetElement.idl:
1041         * html/HTMLHRElement.idl:
1042         * html/HTMLHeadElement.idl:
1043         * html/HTMLHeadingElement.idl:
1044         * html/HTMLHtmlElement.idl:
1045         * html/HTMLIFrameElement.idl:
1046         * html/HTMLImageElement.idl:
1047         * html/HTMLInputElement.idl:
1048         * html/HTMLIsIndexElement.idl:
1049         * html/HTMLLIElement.idl:
1050         * html/HTMLLabelElement.idl:
1051         * html/HTMLLegendElement.idl:
1052         * html/HTMLLinkElement.idl:
1053         * html/HTMLMapElement.idl:
1054         * html/HTMLMediaElement.idl:
1055         * html/HTMLMenuElement.idl:
1056         * html/HTMLMetaElement.idl:
1057         * html/HTMLModElement.idl:
1058         * html/HTMLOListElement.idl:
1059         * html/HTMLObjectElement.idl:
1060         * html/HTMLOptGroupElement.idl:
1061         * html/HTMLOptionElement.idl:
1062         * html/HTMLParagraphElement.idl:
1063         * html/HTMLParamElement.idl:
1064         * html/HTMLPreElement.idl:
1065         * html/HTMLQuoteElement.idl:
1066         * html/HTMLScriptElement.idl:
1067         * html/HTMLStyleElement.idl:
1068         * html/HTMLTableCaptionElement.idl:
1069         * html/HTMLTableCellElement.idl:
1070         * html/HTMLTableColElement.idl:
1071         * html/HTMLTableElement.idl:
1072         * html/HTMLTableRowElement.idl:
1073         * html/HTMLTableSectionElement.idl:
1074         * html/HTMLTextAreaElement.idl:
1075         * html/HTMLUListElement.idl:
1076         * html/HTMLVideoElement.idl:
1077         * svg/SVGElement.idl:
1078         Added more uses of [Reflect]. Got rid of uses of [ConvertNullToNullString] that
1079         are now unneeded since [Reflect] now implies that. Changed formatting to be
1080         simpler and consistent without all the lining up and multiple lines.
1081
1082 2010-06-17  MORITA Hajime  <morrita@google.com>
1083
1084         Unreviewd, fixed a build break.
1085
1086         * css/CSSSelector.cpp:
1087         (WebCore::CSSSelector::pseudoId):
1088
1089 2010-06-16  MORITA Hajime  <morrita@google.com>
1090
1091         Reviewed by Kent Tamura.
1092
1093         <meter> should allow styling for each gauge-level and component
1094         https://bugs.webkit.org/show_bug.cgi?id=40280
1095
1096         - Introduced following new pseudo classes for <meter> element.
1097         
1098           - -webkit-meter-horizontal-bar
1099           - -webkit-meter-vertical-bar
1100           - -webkit-meter-horizontal-optimum-value
1101           - -webkit-meter-vertical-optimum-value
1102           - -webkit-meter-horizontal-suboptimal-value
1103           - -webkit-meter-vertical-suboptimal-value
1104           - -webkit-meter-horizontal-even-less-good-value
1105           - -webkit-meter-vertical-even-less-good-value
1106         
1107         - Introduced 2 shadow nodes for RenderMeter to handle CSS styling. 
1108           one for bar part and another for value part.
1109         - Removed RenderTheme::paintMeter() implementation because it can be
1110           handled by styled painting without RenderTheme.
1111         - Pulled RenderIndicator up to super class from RenderProgress,
1112           then make RenderMeter a subclass of it.
1113         - Moved shadow related methods from RenderProgress to ShadowBlockElement
1114           to share it with RenderMeter.
1115         - Added rules for html.css for new pseudo classes.
1116         
1117         Tests: fast/dom/HTMLMeterElement/meter-styles-changing-pseudo.html
1118                fast/dom/HTMLMeterElement/meter-styles.html
1119
1120         * CMakeLists.txt:
1121         * GNUmakefile.am:
1122         * WebCore.gypi:
1123         * WebCore.pro:
1124         * WebCore.vcproj/WebCore.vcproj:
1125         * WebCore.xcodeproj/project.pbxproj:
1126         * css/CSSSelector.cpp:
1127         (WebCore::CSSSelector::pseudoId):
1128         (WebCore::nameToPseudoTypeMap):
1129         (WebCore::CSSSelector::extractPseudoType):
1130         * css/CSSSelector.h:
1131         (WebCore::CSSSelector::):
1132         * css/html.css:
1133         (meter::-webkit-meter-horizontal-bar):
1134         (meter::-webkit-meter-vertical-bar):
1135         (meter::-webkit-meter-horizontal-optimum-value):
1136         (meter::-webkit-meter-horizontal-suboptimal-value):
1137         (meter::-webkit-meter-horizontal-even-less-good-value):
1138         (meter::-webkit-meter-vertical-optimum-value):
1139         (meter::-webkit-meter-vertical-suboptimal-value):
1140         (meter::-webkit-meter-vertical-even-less-good-value):
1141         * rendering/RenderIndicator.cpp: Added.
1142         (WebCore::RenderIndicator::RenderIndicator):
1143         (WebCore::RenderIndicator::~RenderIndicator):
1144         (WebCore::RenderIndicator::layout):
1145         (WebCore::RenderIndicator::styleDidChange):
1146         (WebCore::RenderIndicator::updateFromElement):
1147         (WebCore::RenderIndicator::hasParts):
1148         (WebCore::RenderIndicator::requestLayoutForParts):
1149         * rendering/RenderIndicator.h: Added.
1150         (WebCore::RenderIndicator::requiresForcedStyleRecalcPropagation):
1151         * rendering/RenderMeter.cpp:
1152         (WebCore::RenderMeter::RenderMeter):
1153         (WebCore::RenderMeter::~RenderMeter):
1154         (WebCore::RenderMeter::layoutParts): Added.
1155         (WebCore::RenderMeter::shouldHaveParts): Added.
1156         (WebCore::RenderMeter::valueRatio): Added.
1157         (WebCore::RenderMeter::barPartRect): Added.
1158         (WebCore::RenderMeter::valuePartRect): Added.
1159         (WebCore::RenderMeter::isHorizontal): Added.
1160         (WebCore::RenderMeter::valuePseudoId): Added.
1161         (WebCore::RenderMeter::barPseudoId): Added.
1162         (WebCore::RenderMeter::updatePartsState): Added.
1163         * rendering/RenderMeter.h:
1164         * rendering/RenderProgress.cpp:
1165         (WebCore::RenderProgress::RenderProgress):
1166         (WebCore::RenderProgress::updateFromElement):
1167         (WebCore::RenderProgress::paint):
1168         (WebCore::RenderProgress::layoutParts): Added.
1169         (WebCore::RenderProgress::shouldHaveParts): Added.
1170         (WebCore::RenderProgress::updatePartsState):
1171         (WebCore::RenderProgress::valuePartRect):
1172         * rendering/RenderProgress.h:
1173         * rendering/RenderTheme.cpp:
1174         (WebCore::RenderTheme::isControlStyled):
1175         (WebCore::RenderTheme::paintMeter):
1176         * rendering/RenderTheme.h:
1177         (WebCore::RenderTheme::supportsMeter): Added.
1178         * rendering/RenderThemeMac.h:
1179         * rendering/RenderThemeMac.mm:
1180         (WebCore::RenderThemeMac::supportsMeter): Added.
1181         * rendering/ShadowElement.cpp:
1182         (WebCore::ShadowBlockElement::layoutAsPart): Added.
1183         (WebCore::ShadowBlockElement::updateStyleForPart): Added.
1184         (WebCore::ShadowBlockElement::createForPart): Added.
1185         (WebCore::ShadowBlockElement::createStyleForPart): Added.
1186         (WebCore::ShadowBlockElement::partShouldHaveStyle): Added.
1187         * rendering/ShadowElement.h:
1188         * rendering/style/RenderStyleConstants.h:
1189         (WebCore::):
1190
1191 2010-06-17  Fumitoshi Ukai  <ukai@chromium.org>
1192
1193         Reviewed by Alexey Proskuryakov.
1194
1195         WebSocket: resume should not process buffer if already processing.
1196         https://bugs.webkit.org/show_bug.cgi?id=39340
1197
1198         Test: websocket/tests/alert-in-event-handler.html
1199
1200         While running an event handler of WebSocket object, it may be suspended
1201         and resumed in various reason. e.g. alert() will suspend/resume
1202         ActiveDOM objects. In chromium, sending IPC message would also
1203         suspend/resume ActiveDOM objects.
1204         If resume process pending buffer in this case, another event might
1205         be fired while running the initial event handler.
1206         Thus, resume should not process pending buffer immediately.
1207         Pending buffer would be processed after the current task has been
1208         finished.
1209
1210         * websockets/ThreadableWebSocketChannelClientWrapper.h:
1211         * websockets/WebSocketChannel.cpp:
1212         (WebCore::WebSocketChannel::WebSocketChannel):
1213         (WebCore::WebSocketChannel::resume):
1214          Just set one shot timer for resumeTimerFired() if not yet set.
1215         (WebCore::WebSocketChannel::resumeTimerFired):
1216          Process pending event after resume was called.
1217         * websockets/WebSocketChannel.h:
1218
1219 2010-06-17  Eric Seidel  <eric@webkit.org>
1220
1221         Reviewed by Adam Barth.
1222
1223         REGRESSION(HTML5 parser): editing/selection/leave-requested-block.html can fail or crash
1224         https://bugs.webkit.org/show_bug.cgi?id=40764
1225
1226         HTML5ScriptRunner was careful to only call CachedResource::addClient
1227         for cases where the resource was not already loaded.  This was to
1228         avoid getting synchronous notifyFinished callbacks from inside
1229         addClient.  (The old HTMLDocumentParser also has hacks to work around
1230         addClient's synchronous notifyFinished behavior for already-loaded
1231         resources as well.)
1232
1233         It turns out that CachedResource will mark itself as purgeable if it
1234         has no clients, thus it could have its data cleared (but itself not
1235         deleted) in the case where we yield back to the runloop to wait for
1236         CSS to load before executing the loaded script.
1237
1238         The fix is to act more like the old parser and always call addClient
1239         on every CachedScript we load.  But unlike the old parser, we're
1240         careful not to re-enter from addClient -> notifyFinished
1241         using guards in HTML5DocumentParser::watchForLoad.
1242
1243         I do not know how to make a CachedResource purge itself
1244         from a LayoutTest, so this is not currently testable.
1245         If anyone knows how I'm happy to make a test.
1246
1247         * html/HTML5DocumentParser.cpp:
1248         (WebCore::HTML5DocumentParser::watchForLoad):
1249          - It is now expected to call watchForLoad with a loaded script.
1250         (WebCore::HTML5DocumentParser::notifyFinished):
1251          - Now that watchForLoad is called with loaded scripts, notifyFinished
1252            may be be called from addClient, thus we may be in the middle of
1253            script execution when it's called.  It's OK.  We pass the call
1254            along to HTML5ScriptRunner::executeScriptsWaitingForLoad
1255            and it knows how to ignore the call in that case.
1256         * html/HTML5DocumentParser.h:
1257          - Document these member variables more.
1258         * html/HTML5ScriptRunner.cpp:
1259         (WebCore::HTML5ScriptRunner::~HTML5ScriptRunner):
1260         (WebCore::HTML5ScriptRunner::executePendingScript):
1261         (WebCore::HTML5ScriptRunner::hasScriptsWaitingForLoad):
1262         (WebCore::HTML5ScriptRunner::watchForLoad):
1263          - Set the pending script to RegisteringForWatch state before
1264            watching and WatchingForLoad after.
1265         (WebCore::HTML5ScriptRunner::stopWatchingForLoad):
1266          - Set the pending script to NotWatchingForLoad.
1267         (WebCore::HTML5ScriptRunner::executeScriptsWaitingForLoad):
1268          - Assert that callers checked hasScriptsWaitingForLoad()
1269         (WebCore::HTML5ScriptRunner::requestScript):
1270         * html/HTML5ScriptRunner.h:
1271         (WebCore::HTML5ScriptRunner::PendingScript::):
1272         (WebCore::HTML5ScriptRunner::PendingScript::PendingScript):
1273         (WebCore::HTML5ScriptRunner::PendingScript::watchingForLoad):
1274         * html/HTML5ScriptRunnerHost.h:
1275          - Document the new expectations of watchForLoad
1276
1277 2010-06-17  Tony Gentilcore  <tonyg@chromium.org>
1278
1279         Reviewed by Eric Seidel.
1280
1281         Prevent HTML5PreloadScanner from loading resources in <noscript> tags.
1282         https://bugs.webkit.org/show_bug.cgi?id=40779
1283
1284         No new tests. Will create a layout test in a subsequent patch.
1285
1286         * html/HTML5PreloadScanner.cpp:
1287         (WebCore::HTML5PreloadScanner::processToken):
1288         * html/HTML5TreeBuilder.cpp:
1289         (WebCore::HTML5TreeBuilder::adjustedLexerState):
1290         (WebCore::HTML5TreeBuilder::passTokenToLegacyParser):
1291         (WebCore::HTML5TreeBuilder::isScriptingFlagEnabled):
1292         * html/HTML5TreeBuilder.h:
1293
1294 2010-06-17  Adam Barth  <abarth@webkit.org>
1295
1296         Reviewed by Eric Seidel.
1297
1298         HTML5PreloadScanner parses <script> in DataState
1299         https://bugs.webkit.org/show_bug.cgi?id=40804
1300
1301         The ScriptDataState is handled separately from the rest of the lexer
1302         state changes because it's more complicted in the tree builder.  The
1303         easiest thing is to just handle it separately in the preloader too.
1304
1305         * html/HTML5PreloadScanner.cpp:
1306         (WebCore::HTML5PreloadScanner::processToken):
1307
1308 2010-06-17  Adam Barth  <abarth@webkit.org>
1309
1310         Reviewed by Eric Seidel.
1311
1312         Add CSS scanning to HTML5PreloadScanner
1313         https://bugs.webkit.org/show_bug.cgi?id=40802
1314
1315         This patch just cribs the CSS preload scanning algorithm from the old
1316         preload scanner.  We also invented a way of testing the preload
1317         scanner.
1318
1319         Tests: fast/preloader/image.html
1320                fast/preloader/link.html
1321                fast/preloader/script.html
1322                fast/preloader/style.html
1323
1324         * Android.mk:
1325         * GNUmakefile.am:
1326         * WebCore.gypi:
1327         * WebCore.pro:
1328         * WebCore.vcproj/WebCore.vcproj:
1329         * WebCore.xcodeproj/project.pbxproj:
1330         * html/CSSPreloadScanner.cpp: Added.
1331         (WebCore::isWhitespace):
1332         (WebCore::CSSPreloadScanner::CSSPreloadScanner):
1333         (WebCore::CSSPreloadScanner::reset):
1334         (WebCore::CSSPreloadScanner::scan):
1335         (WebCore::CSSPreloadScanner::tokenize):
1336         (WebCore::CSSPreloadScanner::emitRule):
1337         * html/CSSPreloadScanner.h: Added.
1338         (WebCore::CSSPreloadScanner::):
1339         * html/HTML5PreloadScanner.cpp:
1340         (WebCore::HTML5PreloadScanner::HTML5PreloadScanner):
1341         (WebCore::HTML5PreloadScanner::processToken):
1342         (WebCore::HTML5PreloadScanner::scanningBody):
1343         * html/HTML5PreloadScanner.h:
1344
1345 2010-06-17  Abhishek Arya  <inferno@chromium.org>
1346
1347         Reviewed by David Kilzer.
1348
1349         (Landed by Dirk Pranke).
1350
1351         Check for a null frame before setting drag selection.
1352         https://bugs.webkit.org/show_bug.cgi?id=38893
1353         Same Layout test as https://bugs.webkit.org/show_bug.cgi?id=37168.
1354
1355         Test: editing/pasteboard/drag-drop-iframe-refresh-crash.html  
1356
1357         Note that you need to run the test manually 20-30 times for the crash
1358         to reproduce.
1359
1360         * editing/SelectionController.cpp:
1361         (WebCore::SelectionController::setSelection):
1362
1363 2010-06-17  Benjamin Poulain  <benjamin.poulain@nokia.com>
1364
1365         Reviewed by Simon Hausmann.
1366
1367         [Qt] Get rid of the the unused imageSize of ImageDecoderQt::internalHandleCurrentImage()
1368         https://bugs.webkit.org/show_bug.cgi?id=40620
1369
1370         Remove an unused variable.
1371
1372         * platform/graphics/qt/ImageDecoderQt.cpp:
1373         (WebCore::ImageDecoderQt::internalHandleCurrentImage):
1374
1375 2010-06-17  Jeremy Moskovich  <jeremy@chromium.org>
1376
1377         Reviewed by Darin Fisher.
1378
1379         [Chromium API] Implement WebSandboxSupport on OS X and add stubs to allow
1380         OOP loading of fonts.
1381
1382         https://bugs.webkit.org/show_bug.cgi?id=40544
1383
1384         * platform/chromium/ChromiumBridge.h: Add prototype for loadFont()
1385
1386 2010-06-17  Nicolas Weber  <thakis@chromium.org>
1387
1388         Reviewed by Eric Seidel.
1389
1390         Fix various warnings that are reported when building with clang
1391         https://bugs.webkit.org/show_bug.cgi?id=40503
1392
1393         * accessibility/AccessibilityRenderObject.cpp:
1394         (WebCore::AccessibilityRenderObject::labelElementContainer):
1395         * accessibility/AccessibilityTableCell.cpp:
1396         (WebCore::AccessibilityTableCell::parentTable):
1397         * bindings/v8/NPV8Object.cpp:
1398         (WebCore::npObjectTypeInfo):
1399         * bindings/v8/custom/V8HTMLAudioElementConstructor.cpp:
1400         (WebCore::):
1401         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
1402         (WebCore::):
1403         * bindings/v8/custom/V8HTMLOptionElementConstructor.cpp:
1404         (WebCore::):
1405         * css/CSSStyleSheet.h:
1406         * html/HTMLFormElement.cpp:
1407         (WebCore::HTMLFormElement::getNamedElements):
1408         * inspector/InspectorValues.cpp:
1409         (WebCore::InspectorObject::getObject):
1410         (WebCore::InspectorObject::getArray):
1411         * page/animation/AnimationBase.h:
1412         * platform/graphics/BitmapImage.h:
1413         (WTF::):
1414         * platform/graphics/mac/FontPlatformData.h:
1415         * rendering/RenderBlock.h:
1416         * rendering/RootInlineBox.cpp:
1417         (WebCore::RootInlineBox::ellipsisBox):
1418         * storage/StorageNamespaceImpl.cpp:
1419         (WebCore::StorageNamespaceImpl::storageArea):
1420
1421 2010-06-17  Kwang Yul Seo  <skyul@company100.net>
1422
1423         Reviewed by Pavel Feldman.
1424
1425         Add ENABLE(INSPECTOR) guard for m_sessionSettings
1426         https://bugs.webkit.org/show_bug.cgi?id=40611
1427
1428         Build fix.
1429
1430         * inspector/InspectorController.h:
1431
1432 2010-06-17  Eric Seidel  <eric@webkit.org>
1433
1434         Reviewed by Adam Barth.
1435
1436         Add FIXME to explain HTMLDocumentParser's forceSynchronous bool
1437         https://bugs.webkit.org/show_bug.cgi?id=40609
1438
1439         No functional change, just adding comment.
1440
1441         * dom/Document.cpp:
1442         (WebCore::Document::write):
1443
1444 2010-06-13  Robert Hogan  <robert@webkit.org>
1445
1446         Reviewed by Kenneth Rohde Christiansen.
1447
1448         WebCore EventHandler needs to take account of onLoad events 
1449         fired before layout() complete
1450
1451         https://bugs.webkit.org/show_bug.cgi?id=40102
1452
1453         WebCore 'cheats' by firing onLoad events before the frame's layout
1454         has been performed. This can result in event listeners performing
1455         operations that depend on the document's final layout, such as
1456         scrolling operations.
1457
1458         When scrolling a frameview in eventhandler ensure the layout is complete.
1459
1460         * page/EventHandler.cpp:
1461         (WebCore::EventHandler::scrollRecursively):
1462
1463 2010-06-16  Dumitru Daniliuc  <dumi@chromium.org>
1464
1465         Reviewed by Dimitri Glazkov.
1466
1467         Add the error codes defined in the async DB spec to SQLError.idl and SQLError.h.
1468         https://bugs.webkit.org/show_bug.cgi?id=40748
1469
1470         Test: storage/sql-error-codes.html
1471
1472         * storage/SQLError.h:
1473         (WebCore::SQLError::):
1474         * storage/SQLError.idl:
1475         * storage/SQLStatement.cpp:
1476         (WebCore::SQLStatement::execute):
1477         (WebCore::SQLStatement::setDatabaseDeletedError):
1478         (WebCore::SQLStatement::setVersionMismatchedError):
1479         (WebCore::SQLStatement::setFailureDueToQuota):
1480         (WebCore::SQLStatement::lastExecutionFailedDueToQuota):
1481         * storage/SQLTransaction.cpp:
1482         (WebCore::SQLTransaction::openTransactionAndPreflight):
1483         (WebCore::SQLTransaction::deliverTransactionCallback):
1484         (WebCore::SQLTransaction::handleCurrentStatementError):
1485         (WebCore::SQLTransaction::deliverStatementCallback):
1486         (WebCore::SQLTransaction::postflightAndCommit):
1487
1488 2010-06-17  Kinuko Yasuda  <kinuko@chromium.org>
1489
1490         Reviewed by Jian Li.
1491
1492         Fix CRLF ending conversion in StringBlobItem.
1493         https://bugs.webkit.org/show_bug.cgi?id=40736
1494         Also: fix referencing uninitialized member bug and slice length bug
1495         in hybrid blob case.
1496
1497         Tests will be added when we add BlobBuilder jsc bindings.
1498
1499         * platform/BlobItem.cpp:
1500         (WebCore::StringBlobItem::convertToCString):
1501         (WebCore::DataRangeBlobItem::DataRangeBlobItem):
1502
1503 2010-06-17  Dimitri Glazkov  <dglazkov@chromium.org>
1504
1505         Unreviewed, rolling out r61340.
1506         http://trac.webkit.org/changeset/61340
1507         https://bugs.webkit.org/show_bug.cgi?id=36282
1508
1509         Broke several editing tests.
1510
1511         * css/CSSMutableStyleDeclaration.cpp:
1512         (WebCore::CSSMutableStyleDeclaration::CSSMutableStyleDeclaration):
1513         * css/CSSParser.cpp:
1514         (WebCore::CSSParser::parseValue):
1515         * css/CSSStyleSelector.cpp:
1516         (WebCore::CSSStyleSelector::applyProperty):
1517
1518 2010-06-17  Jian Li  <jianli@chromium.org>
1519
1520         Reviewed by David Levin.
1521
1522         Add optional contentType parameter to Blob.slice per latest File API spec.
1523         https://bugs.webkit.org/show_bug.cgi?id=40647
1524
1525         Tested by http/tests/local/resources/send-sliced-dragged-file.html.
1526
1527         * html/Blob.cpp:
1528         (WebCore::Blob::slice):
1529         * html/Blob.h:
1530         * html/Blob.idl:
1531
1532 2010-06-17  Jesus Sanchez-Palencia  <jesus@webkit.org>, Kenneth Rohde Christiansen  <kenneth@webkit.org>
1533
1534         Reviewed by Simon Hausmann.
1535
1536         [Qt] QtWebKit does not support viewport meta tag
1537         https://bugs.webkit.org/show_bug.cgi?id=39902
1538
1539         Add windowRect() to page client.
1540
1541         * platform/qt/QWebPageClient.h:
1542
1543 2010-06-17  Stephen White  <senorblanco@chromium.org>
1544
1545         Reviewed by David Levin.
1546
1547         Fix for slow multiple animated resize issue.
1548         https://bugs.webkit.org/show_bug.cgi?id=38233
1549
1550         The timer-based resize quality approach implemented in
1551         http://trac.webkit.org/changeset/34210 is a good idea, but doesn't
1552         scale to multiple images with animated resizes.  This fix unifies all
1553         outstanding resize timers into a single timer, and removes the "use
1554         last quality" check (which doesn't work when images are overlapping). 
1555         It also refactors the copy of this code implemented in
1556         RenderBoxModelObject in http://trac.webkit.org/changeset/53949.
1557
1558         This improves Safari performance for the following IE9 platform demos on my C2D MacPro (10.5):
1559         http://ie.microsoft.com/testdrive/Performance/01FlyingImages/Default.html (4->60fps)
1560         http://ie.microsoft.com/testdrive/Performance/10FlickrExplorer/Default.html (3->16fps)
1561         http://ie.microsoft.com/testdrive/Performance/11BrowserFlip/Default.html (9->60fps)
1562
1563         * rendering/RenderBoxModelObject.cpp:
1564         (WebCore::ImageQualityController::ImageQualityController):
1565         Unify all timers into a single timer, rename RenderBoxModelScaleObserver
1566         to ImageQualityController, and remove the resize quality "stickness",
1567         since it doesn't work with multiple outstanding resizes.
1568         (WebCore::ImageQualityController::objectDestroyed):
1569         gImages global is now m_lastPaintTimeMap member.
1570         (WebCore::ImageQualityController::highQualityRepaintTimerFired):
1571         Function made non-static; repaint all pending resizes (not just one).
1572         (WebCore::ImageQualityController::restartTimer):
1573         Added function to restart timer at 1.05x threshold.
1574         (WebCore::imageQualityController):
1575         Static function to return singleton.
1576         (WebCore::ImageQualityController::shouldPaintAtLowQuality):
1577         Use m_lastPaintTimeMap, not gImages global.  Implement new timer
1578         algorithm.  Remove resize "stickiness".
1579         (WebCore::RenderBoxModelObject::shouldPaintAtLowQuality):
1580         Implement shouldPaintAtLowQuality, which pulls out "this" and passes
1581         the call to the ImageQualityController.
1582         (WebCore::RenderBoxModelObject::~RenderBoxModelObject):
1583         Call ImageQualityController singleton's objectDestroyed() instead of
1584         old static function.
1585         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
1586         Modify shouldPaintAtLowQuality() call to match new class name and
1587         function signature.
1588         * rendering/RenderBoxModelObject.h:
1589         Expose shouldPaintAtLowQuality as a member function.
1590         * rendering/RenderImage.cpp:
1591         (WebCore::RenderImage::~RenderImage):
1592         No need to call objectDestroyed() here anymore, since the
1593         RenderBoxModelObject destructor will do this for us.
1594         (WebCore::RenderImage::paintIntoRect):
1595         Rip out RenderImageScaleObserver, and call
1596         RenderBoxModelObject::shouldPaintAtLowQuality() instead.
1597
1598 2010-06-17  Rob Buis  <rwlbuis@gmail.com>
1599
1600         Reviewed by Dave Hyatt.
1601
1602         CSS3 "Property is declared twice in rule" test fails
1603         https://bugs.webkit.org/show_bug.cgi?id=36282
1604
1605         Filter out duplicate properties in style declaration.
1606
1607         Test: fast/css/duplicate-property-in-rule.html
1608
1609         * css/CSSMutableStyleDeclaration.cpp: Filter out duplicate properties
1610         (WebCore::CSSMutableStyleDeclaration::CSSMutableStyleDeclaration):
1611         * css/CSSParser.cpp:
1612         (WebCore::CSSParser::parseValue): Discard negative padding values
1613         * css/CSSStyleSelector.cpp: Remove negative padding check
1614         (WebCore::CSSStyleSelector::applyProperty):
1615
1616 2010-06-17  Kenneth Russell  <kbr@google.com>
1617
1618         Reviewed by Dimitri Glazkov.
1619
1620         Clean up error conditions for Typed Arrays
1621         https://bugs.webkit.org/show_bug.cgi?id=40755
1622
1623         * bindings/js/JSArrayBufferCustom.cpp:
1624         (WebCore::JSArrayBufferConstructor::constructJSArrayBuffer):
1625          - Fixed handling of NaN/+inf/-inf lengths. Throw RangeError for too-large or negative lengths.
1626         * bindings/js/JSArrayBufferViewHelper.h:
1627         (WebCore::constructArrayBufferView):
1628          - Changed all error code paths to throw exceptions. Clarified exception types.
1629         * bindings/js/JSFloat32ArrayCustom.cpp:
1630         (WebCore::JSFloat32ArrayConstructor::constructJSFloat32Array):
1631          - Removed throwing of INDEX_SIZE_ERROR, delegating responsibility to constructArrayBufferView.
1632         * bindings/js/JSInt16ArrayCustom.cpp:
1633         (WebCore::JSInt16ArrayConstructor::constructJSInt16Array):
1634          - Removed throwing of INDEX_SIZE_ERROR, delegating responsibility to constructArrayBufferView.
1635         * bindings/js/JSInt32ArrayCustom.cpp:
1636         (WebCore::JSInt32ArrayConstructor::constructJSInt32Array):
1637          - Removed throwing of INDEX_SIZE_ERROR, delegating responsibility to constructArrayBufferView.
1638         * bindings/js/JSInt8ArrayCustom.cpp:
1639         (WebCore::JSInt8ArrayConstructor::constructJSInt8Array):
1640          - Removed throwing of INDEX_SIZE_ERROR, delegating responsibility to constructArrayBufferView.
1641         * bindings/js/JSUint16ArrayCustom.cpp:
1642         (WebCore::JSUint16ArrayConstructor::constructJSUint16Array):
1643          - Removed throwing of INDEX_SIZE_ERROR, delegating responsibility to constructArrayBufferView.
1644         * bindings/js/JSUint32ArrayCustom.cpp:
1645         (WebCore::JSUint32ArrayConstructor::constructJSUint32Array):
1646          - Removed throwing of INDEX_SIZE_ERROR, delegating responsibility to constructArrayBufferView.
1647         * bindings/js/JSUint8ArrayCustom.cpp:
1648         (WebCore::JSUint8ArrayConstructor::constructJSUint8Array):
1649          - Removed throwing of INDEX_SIZE_ERROR, delegating responsibility to constructArrayBufferView.
1650         * bindings/v8/custom/V8ArrayBufferCustom.cpp:
1651         (WebCore::V8ArrayBuffer::constructorCallback):
1652          - Fixed handling of NaN/+inf/-inf lengths. Throw RangeError for too-large or negative lengths.
1653            Clarified exception types.
1654         * bindings/v8/custom/V8ArrayBufferViewCustom.h:
1655         (WebCore::constructWebGLArray):
1656          - Clarified exception types and throwing of exceptions along all error code paths.
1657         * html/canvas/TypedArrayBase.h:
1658         (WebCore::TypedArrayBase::create):
1659          - Added necessary null checks during allocation.
1660
1661 2010-06-17  Shu Chang  <chang.shu@nokia.com>
1662
1663         Reviewed by Kenneth Rohde Christiansen.
1664
1665         [Qt] Fix the link error on symbian with ENABLE_JIT=0.
1666         1. Add "#if ENABLE(JIT)" in the header file;
1667         2. Put feature enable/disable logic to a common.pri so
1668         that both JavaScriptCore.pri and WebCore.pri can share.
1669
1670         https://bugs.webkit.org/show_bug.cgi?id=40780
1671
1672         * WebCore.pri:
1673
1674 2010-06-17  Kenneth Russell  <kbr@google.com>
1675
1676         Reviewed by Oliver Hunt.
1677
1678         Differences in error reporting for overloaded methods causing fast/canvas/webgl/texImageTest.html to fail
1679         https://bugs.webkit.org/show_bug.cgi?id=40750
1680
1681         Added V8Proxy::throwTypeError() and throwSyntaxError for parity
1682         with JSC::throwTypeError() and throwSyntaxError. Changed
1683         CodeGeneratorV8.pm to use throwTypeError for overload resolution
1684         failures. Revised CodeGeneratorJS.pm to use throwVMTypeError
1685         instead of manual call to JSValue::encode. Deleted now-unnecessary
1686         Chromium expectations for fast/canvas/webgl/texImageTest.html.
1687
1688         * bindings/scripts/CodeGeneratorJS.pm:
1689         * bindings/scripts/CodeGeneratorV8.pm:
1690         * bindings/v8/V8Proxy.cpp:
1691         (WebCore::V8Proxy::throwTypeError):
1692         (WebCore::V8Proxy::throwSyntaxError):
1693         * bindings/v8/V8Proxy.h:
1694
1695 2010-06-17  Darin Fisher  <darin@chromium.org>
1696
1697         Reviewed by Brady Eidson.
1698
1699         If Page::goToItem is passed a HistoryItem that is the current item,
1700         then the page should be loaded again.
1701
1702         https://bugs.webkit.org/show_bug.cgi?id=40660
1703
1704         * loader/HistoryController.cpp:
1705         (WebCore::HistoryController::recursiveGoToItem): Add a check to
1706         recursiveGoToItem that matches the one in FrameLoader::loadItem.
1707
1708 2010-06-17  Kwang Yul Seo  <skyul@company100.net>
1709
1710         Reviewed by Kent Tamura.
1711
1712         [BREWMP] Build fix for DragDataBrew
1713         https://bugs.webkit.org/show_bug.cgi?id=40610
1714
1715         http://trac.webkit.org/changeset/60957 was not applied to DragDataBrew.cpp.
1716         Add FilenameConversionPolicy argument to DragData::containsURL and DragData::asURL.
1717
1718         * platform/brew/DragDataBrew.cpp:
1719         (WebCore::DragData::containsURL):
1720         (WebCore::DragData::asURL):
1721
1722 2010-06-17  Zhenyao Mo  <zmo@google.com>
1723
1724         Reviewed by David Levin.
1725
1726         Rename internalformat to internalFormat
1727         https://bugs.webkit.org/show_bug.cgi?id=40149
1728
1729         * html/canvas/WebGLFramebuffer.cpp: Rename internalformat to internalFormat.
1730         (WebCore::WebGLFramebuffer::getColorBufferFormat):
1731         * html/canvas/WebGLRenderbuffer.cpp: Ditto.
1732         (WebCore::WebGLRenderbuffer::WebGLRenderbuffer):
1733         * html/canvas/WebGLRenderbuffer.h: Ditto.
1734         (WebCore::WebGLRenderbuffer::setInternalFormat):
1735         (WebCore::WebGLRenderbuffer::getInternalFormat):
1736         * html/canvas/WebGLRenderingContext.cpp: Ditto.
1737         (WebCore::WebGLRenderingContext::copyTexImage2D):
1738         (WebCore::WebGLRenderingContext::copyTexSubImage2D):
1739         (WebCore::WebGLRenderingContext::framebufferRenderbuffer):
1740         (WebCore::WebGLRenderingContext::getRenderbufferParameter):
1741         (WebCore::WebGLRenderingContext::renderbufferStorage):
1742         (WebCore::WebGLRenderingContext::texImage2DBase):
1743         (WebCore::WebGLRenderingContext::isTexInternalFormatColorBufferCombinationValid):
1744         * html/canvas/WebGLRenderingContext.h: Ditto.
1745         * html/canvas/WebGLTexture.cpp: Ditto.
1746         (WebCore::WebGLTexture::WebGLTexture):
1747         * html/canvas/WebGLTexture.h: Ditto.
1748         (WebCore::WebGLTexture::setInternalFormat):
1749         (WebCore::WebGLTexture::getInternalFormat):
1750
1751 2010-06-17  Zhenyao Mo  <zmo@google.com>
1752
1753         Reviewed by David Levin.
1754
1755         Remove input parameter validation for "level" upper limit in *tex* functions
1756         https://bugs.webkit.org/show_bug.cgi?id=40603
1757
1758         * html/canvas/WebGLRenderingContext.cpp:
1759         (WebCore::WebGLRenderingContext::validateTexFuncParameters): Don't check for "level" upper limit.
1760
1761 2010-06-17  Lucas De Marchi  <lucas.demarchi@profusion.mobi>
1762
1763         Reviewed by Eric Seidel.
1764
1765         Clean EFL header files in order to diminish the compilation time with
1766         EFL from subversion. We remove the EFL includes from header files and use
1767         forward declarations, including the headers in correspondent source
1768         files when needed. This causes only the needed source files to be
1769         recompiled in case a new version of EFL is installed instead of
1770         triggering a recompilation of almost all WebCore/WebKit.
1771         https://bugs.webkit.org/show_bug.cgi?id=40575
1772
1773         No new functionalities, so no new tests.
1774
1775         * CMakeListsEfl.txt:
1776         * platform/PlatformKeyboardEvent.h: forward declaration.
1777         * platform/PlatformMouseEvent.h: forward declaration and change method
1778         signature to not require enum.
1779         * platform/PlatformWheelEvent.h: forward declaration.
1780         * platform/Widget.h: forward declaration.
1781         * platform/efl/PlatformKeyboardEventEfl.cpp: include needed header.
1782         * platform/efl/PlatformMouseEventEfl.cpp:
1783         (WebCore::PlatformMouseEvent::setClickCount): change method signature
1784         as mentioned above.
1785         * platform/efl/PlatformWheelEventEfl.cpp: include needed header.
1786         * platform/efl/RenderThemeEfl.cpp: include needed header
1787         * platform/efl/RenderThemeEfl.h: forward declaration.
1788         * platform/efl/ScrollbarEfl.cpp: include needed header.
1789         * platform/efl/ScrollbarEfl.h: forward declaration.
1790         * platform/efl/WidgetEfl.cpp: include needed header.
1791         * platform/graphics/FloatRect.h: remove unused method.
1792         * platform/graphics/Icon.h: forward declaration.
1793         * platform/graphics/IntRect.h: remove unused method.
1794         * platform/graphics/efl/FloatRectEfl.cpp: Removed. This file was
1795         implementing an unused method.
1796         * platform/graphics/efl/IntRectEfl.cpp: Removed. This file was
1797         implementing an unused method.
1798
1799 2010-06-17  Alex Milowski  <alex@milowski.com>
1800
1801         Reviewed by Darin Adler.
1802
1803         Fixed a compile error in the paint() methods by making them use the
1804         new visitedDependentColor() method.
1805         https://bugs.webkit.org/show_bug.cgi?id=40327
1806
1807         * mathml/RenderMathMLRoot.cpp:
1808         (WebCore::RenderMathMLRoot::paint):
1809         (WebCore::RenderMathMLRoot::layout): Fixed a crash where every child 
1810         was assumed to be a RenderMathMLBlock instance when that isn't the 
1811         case.  Also, layout() needed to mark the index for layout before 
1812         calling layout() on the index.
1813         * mathml/RenderMathMLSquareRoot.cpp:
1814         (WebCore::RenderMathMLSquareRoot::paint):
1815
1816 2010-06-17  Darin Adler  <darin@apple.com>
1817
1818         Reviewed by Sam Weinig.
1819
1820         Use adoptRef and create functions in more code paths
1821         https://bugs.webkit.org/show_bug.cgi?id=40760
1822
1823         This helps prepare for an assertion that fires if you ref or destroy an
1824         object before calling adoptRef on it. That will help us catch mistakes
1825         that can lead to storage leaks.
1826
1827         * WebCore.base.exp: Updated export now that Frame::create is not an
1828         inline function.
1829
1830         * css/CSSInitialValue.h:
1831         (WebCore::CSSInitialValue::createExplicit): Use create.
1832         (WebCore::CSSInitialValue::createImplicit): Ditto.
1833         (WebCore::CSSInitialValue::create): Added.
1834
1835         * css/CSSPrimitiveValue.cpp:
1836         (WebCore::CSSPrimitiveValue::createUncachedIdentifier): Added.
1837         (WebCore::CSSPrimitiveValue::createUncachedColor): Added.
1838         (WebCore::CSSPrimitiveValue::createUncached): Added.
1839         (WebCore::CSSPrimitiveValue::createIdentifier): Use createUncachedIdentifier
1840         instead of using new directly.
1841         (WebCore::CSSPrimitiveValue::createColor): Use createUncachedColor instead
1842         of using new directly.
1843         (WebCore::CSSPrimitiveValue::create): Use createdUncached instead of using
1844         new directly.
1845         * css/CSSPrimitiveValue.h: Declare the new functions above.
1846
1847         * css/CSSStyleSelector.cpp:
1848         (WebCore::loadFullDefaultStyle): Deref simpleDefaultStyleSheet instead of
1849         explicitly deleting it.
1850
1851         * loader/SubresourceLoader.cpp:
1852         (WebCore::SubresourceLoader::SubresourceLoader): Move the call to
1853         addSubresourceLoader out of here.
1854         (WebCore::SubresourceLoader::create): Move it in here. This makes it so
1855         we don't ref the loader before finishing its creation and calling adoptRef.
1856
1857         * page/Frame.cpp:
1858         (WebCore::Frame::Frame): Move the call to setMainFrame out of here.
1859         Also refactor the code so an assertion is easier to read.
1860         (WebCore::Frame::create): Move the call to setMainFrame in here.
1861         This makes it so we don't ref the frame before finishing its creation
1862         and calling adoptRef.
1863         * page/Frame.h: Made the create function non-inline.
1864
1865         * platform/text/BidiContext.cpp:
1866         (WebCore::BidiContext::createUncached): Added.
1867         (WebCore::BidiContext::create): Call createUncached instead of callling
1868         new directly.
1869         * platform/text/BidiContext.h: Declare createUncached.
1870
1871         * rendering/RenderSVGResourceFilter.cpp:
1872         (WebCore::RenderSVGResourceFilter::buildPrimitives): Use PassRefPtr and
1873         RefPtr instead of OwnPtr. And use the create function instead of new.
1874         * rendering/RenderSVGResourceFilter.h: Ditto.
1875         * rendering/SVGRenderTreeAsText.cpp:
1876         (WebCore::writeSVGResourceContainer): Ditto.
1877
1878         * storage/StorageAreaImpl.cpp:
1879         (WebCore::StorageAreaImpl::StorageAreaImpl): Move the code that calls
1880         StorageAreaSync::create out of here.
1881         (WebCore::StorageAreaImpl::create): Move it in here. This makes it so we
1882         don't ref the storage area before finishing its creation and calling adoptRef.
1883
1884         * svg/SVGPaint.cpp:
1885         (WebCore::SVGPaint::defaultFill): Use create instead of new.
1886         (WebCore::SVGPaint::defaultStroke): Ditto.
1887
1888         * svg/graphics/filters/SVGFilterBuilder.h: Made the constructor private
1889         and added a create function since this is a reference counted object and
1890         should not be constructed directly.
1891
1892 2010-06-17  Lucas De Marchi  <lucas.demarchi@profusion.mobi>
1893
1894         Reviewed by Gustavo Noronha.
1895
1896         Update CMake build system to use new script for generating source files
1897         with gperf (r61091).
1898         This updates also the build system to cope with recent changes to
1899         source files list.
1900         https://bugs.webkit.org/show_bug.cgi?id=40628
1901
1902         No new tests since it's just compilation fixes.
1903
1904         * CMakeLists.txt:
1905
1906 2010-06-17  Darin Adler  <darin@apple.com>
1907
1908         Reviewed by Sam Weinig.
1909
1910         Fix boolean reflected attributes to use empty string consistently for the content attribute value
1911         https://bugs.webkit.org/show_bug.cgi?id=40758
1912
1913         Test: fast/dom/boolean-attribute-reflection.html
1914
1915         The HTML5 specification and other browsers are all consistent:
1916         When setting a boolean IDL attribute to true, the attribute value
1917         gets set to the empty string. The guidelines for authors allow either
1918         the empty string or the name of the attribute, but for implementers
1919         of the DOM, the reflected attribute gets empty string.
1920
1921         * dom/Element.cpp:
1922         (WebCore::Element::setBooleanAttribute): Use emptyAtom to set the
1923         attribute to the empty string.
1924
1925         * html/HTMLFormControlElement.cpp:
1926         (WebCore::HTMLFormControlElement::setAutofocus): Use the empty string,
1927         not "autofocus".
1928         (WebCore::HTMLFormControlElement::setRequired): Use the empty string,
1929         not "required".
1930
1931 2010-06-17  Pavel Feldman  <pfeldman@chromium.org>
1932
1933         Unreviewed: chromium tests fix. Added InspectorBackend delegates for new inspector methods.
1934
1935         * inspector/front-end/InspectorBackendStub.js:
1936         (.WebInspector.InspectorBackendStub.prototype.clearConsoleMessages):
1937         (.WebInspector.InspectorBackendStub.prototype.getOuterHTML):
1938         (.WebInspector.InspectorBackendStub.prototype.setOuterHTML):
1939         (.WebInspector.InspectorBackendStub.prototype.addInspectedNode):
1940
1941 2010-06-17  Mark Brand  <mabrand@mabrand.nl>
1942
1943         Reviewed by Simon Hausmann.
1944
1945         [Qt] use "win32-g++*" scope to match all MinGW makespecs
1946
1947         The scope "win32-g++" comes from the name of the makespec. However, it
1948         is frequently used to check for MinGW. This works fine as long as
1949         win32-g++ is the only makespec for MinGW. Now we need the wildcard
1950         to cover "win32-g++-cross" as well.
1951
1952         * WebCore.pro:
1953
1954 2010-06-16  Pavel Feldman  <pfeldman@chromium.org>
1955
1956         Reviewed by Joe Pecoraro.
1957
1958         Web Inspector: move get/setOuterHTML, addInspectedNode and
1959         clearConsole to native InspectorDOMAgent. This is done to allow
1960         inspected nodes array to store nodes from different domains,
1961         also moves outerhtml manipulation closer to the rest of the DOM
1962         operations. In addition to that, we are slowly getting rid of
1963         InjectedScriptAccess in favor of IDL-defined InspectorBackend
1964         interface for clearer remote debugging API.
1965
1966         https://bugs.webkit.org/show_bug.cgi?id=40733
1967
1968         * inspector/InjectedScriptHost.cpp:
1969         (WebCore::InjectedScriptHost::inspectedNode):
1970         * inspector/InjectedScriptHost.h:
1971         * inspector/InspectorBackend.cpp:
1972         (WebCore::InspectorBackend::changeTagName):
1973         (WebCore::InspectorBackend::getOuterHTML):
1974         (WebCore::InspectorBackend::setOuterHTML):
1975         (WebCore::InspectorBackend::addInspectedNode):
1976         (WebCore::InspectorBackend::clearConsoleMessages):
1977         * inspector/InspectorBackend.h:
1978         * inspector/InspectorBackend.idl:
1979         * inspector/InspectorDOMAgent.cpp:
1980         (WebCore::InspectorDOMAgent::inspectedNode):
1981         (WebCore::InspectorDOMAgent::changeTagName):
1982         (WebCore::InspectorDOMAgent::getOuterHTML):
1983         (WebCore::InspectorDOMAgent::setOuterHTML):
1984         (WebCore::InspectorDOMAgent::addInspectedNode):
1985         * inspector/InspectorDOMAgent.h:
1986         * inspector/InspectorFrontend.cpp:
1987         (WebCore::InspectorFrontend::didGetOuterHTML):
1988         (WebCore::InspectorFrontend::didSetOuterHTML):
1989         * inspector/InspectorFrontend.h:
1990         * inspector/front-end/ConsoleView.js:
1991         (WebInspector.ConsoleView.prototype.requestClearMessages):
1992         * inspector/front-end/DOMAgent.js:
1993         * inspector/front-end/ElementsPanel.js:
1994         (WebInspector.ElementsPanel.this.treeOutline.focusedNodeChanged):
1995         (WebInspector.ElementsPanel):
1996         * inspector/front-end/ElementsTreeOutline.js:
1997         (WebInspector.ElementsTreeElement.prototype._tagNameEditingCommitted.changeTagNameCallback):
1998         (WebInspector.ElementsTreeElement.prototype._tagNameEditingCommitted):
1999         ():
2000         * inspector/front-end/InjectedScript.js:
2001         (injectedScriptConstructor):
2002         * inspector/front-end/InjectedScriptAccess.js:
2003
2004 2010-06-17  John Gregg  <johnnyg@google.com>
2005
2006         Reviewed by David Levin.
2007
2008         Move the call to the notification presenter that a Notification is being
2009         destroyed from the destructor (not safe) to the ActiveDOMObject::contextDestroyed
2010         method.
2011
2012         Also fix up an incorrect reference loss in the V8 bindings code for Notifications.
2013         https://bugs.webkit.org/show_bug.cgi?id=40097
2014
2015         No new tests; code paths are well-covered by existing tests.
2016
2017         * bindings/v8/custom/V8NotificationCenterCustom.cpp:
2018         (WebCore::V8NotificationCenter::createHTMLNotificationCallback):
2019         (WebCore::V8NotificationCenter::createNotificationCallback):
2020         * notifications/Notification.cpp:
2021         (WebCore::Notification::~Notification):
2022         (WebCore::Notification::contextDestroyed):
2023         * notifications/Notification.h:
2024
2025 2010-06-17  Csaba Osztrogonác  <ossy@webkit.org>
2026
2027         Unreviewed rollout r61311, because it made 2 tests fail on Qt bot.
2028
2029         [Qt] NPP_SetWindow seems to not be called when TestNetscapePlugin is moved
2030         https://bugs.webkit.org/show_bug.cgi?id=36702
2031
2032         * plugins/qt/PluginViewQt.cpp:
2033         (WebCore::PluginView::updatePluginWidget):
2034
2035 2010-05-28  Viatcheslav Ostapenko  <ostapenko.viatcheslav@nokia.com>
2036
2037         Reviewed by Simon Hausmann, Antti Koivisto
2038
2039         Make repaint throttling parameters runtime configurable.
2040         https://bugs.webkit.org/show_bug.cgi?id=38401
2041
2042         REPAINT_THROTTLING now chooses default values for throttling parameters.
2043         Should be removed when applications start using runtime configuration.
2044
2045         * page/FrameView.cpp:
2046         (WebCore::FrameView::reset):
2047         (WebCore::FrameView::updateDeferredRepaintDelay):
2048         (WebCore::FrameView::setRepaintThrottlingDeferredRepaintDelay):
2049         (WebCore::FrameView::setRepaintThrottlingnInitialDeferredRepaintDelayDuringLoading):
2050         (WebCore::FrameView::setRepaintThrottlingMaxDeferredRepaintDelayDuringLoading):
2051         (WebCore::FrameView::setRepaintThrottlingDeferredRepaintDelayIncrementDuringLoading):
2052         * page/FrameView.h:
2053
2054 2010-06-17  Robert Hogan  <robert@webkit.org>
2055
2056         Reviewed by Kenneth Rohde Christiansen.
2057
2058         [Qt] NPP_SetWindow seems to not be called when TestNetscapePlugin is moved
2059
2060         https://bugs.webkit.org/show_bug.cgi?id=36702
2061
2062         setNPWindowIfNeeded() is called on paint() in PluginViewQt, which doesn't
2063         work for DRT. So call it if we are in DRT mode and the window geometry
2064         has changed.
2065
2066         Unskips plugins/reentrant-update-widget-positions.html
2067
2068         * plugins/qt/PluginViewQt.cpp:
2069         (WebCore::PluginView::updatePluginWidget):
2070
2071 2010-06-17  Simon Hausmann  <simon.hausmann@nokia.com>
2072
2073         Reviewed by Kenneth Christiansen.
2074
2075         [Qt] Avoid unnecessary calls to save() and restore() when drawing images
2076
2077         Avoid calling the expensive save() and restore() on the GraphicsContext just
2078         for changing the composition mode. Instead save and restore it manually
2079         on QPainter.
2080
2081         Change fac227f609e544f8f55aca8447b4328d6534407a in Qt makes sure that the
2082         call to QPainter::setCompositionMode doesn't do anything if the mode hasn't
2083         changed.
2084
2085         * platform/graphics/GraphicsContext.h:
2086         * platform/graphics/qt/GraphicsContextQt.cpp:
2087         (WebCore::GraphicsContext::toQtCompositionMode):
2088         * platform/graphics/qt/ImageQt.cpp:
2089         (WebCore::BitmapImage::draw):
2090
2091 2010-06-16  Dawit Alemayehu  <adawit@kde.org>
2092
2093         Reviewed by Simon Hausmann.
2094
2095         [Qt] QtWebKit crashes while initializing flash plugin 10.1.53.64.
2096         https://bugs.webkit.org/show_bug.cgi?id=40567
2097
2098         Avoid preventable crashes by ensuring gtk_init() is called in the
2099         flash viewer plugins before calling NP_Initialize.
2100
2101         * plugins/qt/PluginPackageQt.cpp:
2102         (WebCore::PluginPackage::load):
2103
2104 2010-06-16  Tony Gentilcore  <tonyg@chromium.org>
2105
2106         Reviewed by David Levin.
2107
2108         Guarantee that references are held for CachedScripts in HTMLDocumentParser.
2109         https://bugs.webkit.org/show_bug.cgi?id=40177
2110
2111         No new tests because no new functionality.
2112
2113         * html/HTMLDocumentParser.cpp:
2114         (WebCore::HTMLDocumentParser::reset):
2115         (WebCore::HTMLDocumentParser::executeExternalScriptsIfReady):
2116
2117 2010-06-16  Qi Zhang  <qi.2.zhang@nokia.com>
2118
2119         Reviewed by Laszlo Gombos.
2120
2121          [Qt] Repeat pattern should start from origin
2122          https://bugs.webkit.org/show_bug.cgi?id=39225
2123
2124          Patterns must be painted so that the top left of the first image 
2125          is anchored at the origin of the coordinate space.
2126
2127         * platform/graphics/qt/GraphicsContextQt.cpp:
2128         (WebCore::drawRepeatPattern):
2129         (WebCore::GraphicsContext::fillRect):
2130
2131 2010-06-16  Jarkko Sakkinen  <jarkko.j.sakkinen@gmail.com>
2132
2133         Reviewed by Simon Hausmann.
2134
2135         [Qt] WebGL viewport does not show up on N900  
2136         https://bugs.webkit.org/show_bug.cgi?id=38528
2137
2138         With OGLES2 add default precision to the shader code.
2139         Use GLsizeiptr and GLintptr with OGLES2.
2140         Call paint() in beginPaint() so that drawTexture() is used 
2141         whenever possible.
2142
2143         * platform/graphics/qt/GraphicsContext3DQt.cpp:
2144         (WebCore::GraphicsContext3D::beginPaint):
2145         (WebCore::GraphicsContext3D::paint):
2146         (WebCore::GraphicsContext3D::shaderSource):
2147
2148 2010-06-16  Antonio Gomes  <tonikitoo@webkit.org>
2149
2150         Reviewed by Simon Fraser.
2151
2152         Spatial Navigation: refactor scrollInDirection to work with scrollable content
2153         https://bugs.webkit.org/show_bug.cgi?id=39195
2154
2155         scrollInDirection now receives as parameter the node that the Spatial Navigation
2156         found as the more appropriated to move focus to. If it is in a scrollable container
2157         (e.g. <div> with clipped overflow content), it scrolls recursively starting from
2158         the container, not the current focused node.
2159
2160         Test: fast/events/spatial-navigation/snav-only-clipped-overflow-content.html
2161
2162         * page/FocusController.cpp:
2163         (WebCore::FocusController::advanceFocusDirectionally):
2164         * page/SpatialNavigation.cpp:
2165         (WebCore::scrollInDirection):
2166         * page/SpatialNavigation.h:
2167
2168 2010-06-16  Brady Eidson  <beidson@apple.com>
2169
2170         Reviewed by Eric Carlson
2171
2172         <rdar://problem/7249553> and https://bugs.webkit.org/show_bug.cgi?id=40749
2173         ResourceLoader::willCacheResponse() needs to null-check Frame::Settings()
2174
2175         No new tests. (Discovered via crash reports, no reproducible cases noted)
2176
2177         * loader/ResourceLoader.cpp:
2178         (WebCore::ResourceLoader::willCacheResponse):  Null check m_frame->settings(), 
2179           but also add an ASSERT so debug-build developers can learn more about why
2180           this might be happening.
2181
2182 2010-06-16  Darin Adler  <darin@apple.com>
2183
2184         Try to fix the MathML build.
2185
2186         * mathml/MathMLMathElement.h: Added missing return type.
2187
2188 2010-06-16  Darin Adler  <darin@apple.com>
2189
2190         Reviewed by David Levin.
2191
2192         Deploy adoptRef in more places, including all HTML and MathML elements
2193         https://bugs.webkit.org/show_bug.cgi?id=39941
2194
2195         * dom/Element.cpp:
2196         (WebCore::Element::dispatchAttrRemovalEvent): Use create instead of new
2197         in commented-out code.
2198         (WebCore::Element::dispatchAttrAdditionEvent): Ditto.
2199
2200         * dom/Node.h: Removed now-unused CreateElementZeroRefCount and
2201         CreateHTMLElementZeroRefCount.
2202
2203         * editing/InsertListCommand.cpp:
2204         (WebCore::InsertListCommand::insertList): Use create instead of new, fixing
2205         a storage leak.
2206
2207         * editing/ModifySelectionListLevel.cpp:
2208         (WebCore::IncreaseSelectionListLevelCommand::increaseSelectionListLevel):
2209         Removed "WithType" from function name. Use create instead of new, fixing a
2210         storage leak.
2211         (WebCore::DecreaseSelectionListLevelCommand::decreaseSelectionListLevel): Use
2212         create instead of new, fixing a storage leak.
2213
2214         * storage/IndexedDatabaseImpl.cpp:
2215         (WebCore::IndexedDatabaseImpl::create): Use adoptRef, fixing a storage leak.
2216
2217         * editing/ModifySelectionListLevel.h: Added create functions.
2218
2219         * html/HTMLAnchorElement.cpp:
2220         (WebCore::HTMLAnchorElement::HTMLAnchorElement):
2221         * html/HTMLFrameOwnerElement.cpp:
2222         (WebCore::HTMLFrameOwnerElement::HTMLFrameOwnerElement):
2223         * html/HTMLMeterElement.cpp:
2224         (WebCore::HTMLMeterElement::HTMLMeterElement):
2225         * html/HTMLProgressElement.cpp:
2226         (WebCore::HTMLProgressElement::HTMLProgressElement):
2227         Removed code to explicitly pass CreateHTMLElement construction type since that's
2228         now the type used for all HTML elements.
2229
2230         * html/HTMLFormControlElement.cpp:
2231         (WebCore::HTMLFormControlElement::HTMLFormControlElement):
2232         * html/HTMLFormControlElement.h:
2233         Removed construction type argument, since CreateHTMLElement is now the type used
2234         for all HTML elements.
2235
2236         * mathml/MathMLElement.cpp:
2237         (WebCore::MathMLElement::MathMLElement): Removed construction type of
2238         CreateStyledElementZeroRefCount so we'll use the default construction
2239         type, CreateStyledElement.
2240         (WebCore::MathMLElement::create): Use adoptRef.
2241
2242         * mathml/MathMLElement.h: Made isMathMLElement function private and
2243         removed unneeded override of createRenderer, because it did the
2244         same thing as the base class's createRenderer function.
2245
2246         * mathml/MathMLInlineContainerElement.cpp:
2247         (WebCore::MathMLInlineContainerElement::create): Use adoptRef.
2248         (WebCore::MathMLInlineContainerElement::createRenderer):
2249         Removed unnecessarily initialization of local variable and removed the
2250         case for mathTag, since that uses a different derived class.
2251
2252         * mathml/MathMLInlineContainerElement.h: Made createRenderrer override
2253         private.
2254
2255         * mathml/MathMLMathElement.cpp:
2256         (WebCore::MathMLMathElement::MathMLMathElement): Marked inline since
2257         it is called in only one place.
2258         (WebCore::MathMLMathElement::create): Use adoptRef.
2259         (WebCore::MathMLMathElement::createRenderer): Added. Creates a
2260         RenderMathMLMath object.
2261
2262         * mathml/MathMLMathElement.h: Made constructor private and added a
2263         private override of createRenderer.
2264
2265         * mathml/MathMLTextElement.cpp:
2266         (WebCore::MathMLTextElement::MathMLTextElement): Marked inline since
2267         it is called in only one place.
2268         (WebCore::MathMLTextElement::create): Use adoptRef.
2269         (WebCore::MathMLTextElement::createRenderer): Changed to call through
2270         to the base class instead of calling RenderObject::createObject directly.
2271
2272         * mathml/MathMLTextElement.h: Made the constructor and createRenderer
2273         function private.
2274
2275         * rendering/RenderFileUploadControl.cpp:
2276         (WebCore::RenderFileUploadControl::RenderFileUploadControl):
2277         Removed an unneeded initializer.
2278
2279         * rendering/RenderProgress.cpp: Tweaked includes.
2280
2281         * rendering/ShadowElement.cpp: Added a "using namespace" directive.
2282         * rendering/ShadowElement.h: Tweaked formatting. Made more functions
2283         private.
2284
2285         * editing/DeleteButton.cpp:
2286         (WebCore::DeleteButton::create):
2287         * html/HTMLAudioElement.cpp:
2288         (WebCore::HTMLAudioElement::create):
2289         (WebCore::HTMLAudioElement::createForJSConstructor):
2290         * html/HTMLBRElement.cpp:
2291         (WebCore::HTMLBRElement::create):
2292         * html/HTMLBaseElement.cpp:
2293         (WebCore::HTMLBaseElement::create):
2294         * html/HTMLBaseFontElement.cpp:
2295         (WebCore::HTMLBaseFontElement::create):
2296         * html/HTMLBlockquoteElement.cpp:
2297         (WebCore::HTMLBlockquoteElement::create):
2298         * html/HTMLBodyElement.cpp:
2299         (WebCore::HTMLBodyElement::create):
2300         * html/HTMLButtonElement.cpp:
2301         (WebCore::HTMLButtonElement::create):
2302         * html/HTMLCanvasElement.cpp:
2303         (WebCore::HTMLCanvasElement::create):
2304         * html/HTMLDListElement.cpp:
2305         (WebCore::HTMLDListElement::create):
2306         * html/HTMLDataGridCellElement.cpp:
2307         (WebCore::HTMLDataGridCellElement::create):
2308         * html/HTMLDataGridColElement.cpp:
2309         (WebCore::HTMLDataGridColElement::create):
2310         * html/HTMLDataGridElement.cpp:
2311         (WebCore::HTMLDataGridElement::create):
2312         * html/HTMLDataGridRowElement.cpp:
2313         (WebCore::HTMLDataGridRowElement::create):
2314         * html/HTMLDataListElement.cpp:
2315         (WebCore::HTMLDataListElement::create):
2316         * html/HTMLDivElement.cpp:
2317         (WebCore::HTMLDivElement::create):
2318         * html/HTMLElement.cpp:
2319         (WebCore::HTMLElement::create):
2320         * html/HTMLElement.h:
2321         (WebCore::HTMLElement::HTMLElement):
2322         * html/HTMLFieldSetElement.cpp:
2323         (WebCore::HTMLFieldSetElement::create):
2324         * html/HTMLFontElement.cpp:
2325         (WebCore::HTMLFontElement::create):
2326         * html/HTMLFormElement.cpp:
2327         (WebCore::HTMLFormElement::create):
2328         * html/HTMLFrameSetElement.cpp:
2329         (WebCore::HTMLFrameSetElement::create):
2330         * html/HTMLHRElement.cpp:
2331         (WebCore::HTMLHRElement::create):
2332         * html/HTMLHeadElement.cpp:
2333         (WebCore::HTMLHeadElement::create):
2334         * html/HTMLHeadingElement.cpp:
2335         (WebCore::HTMLHeadingElement::create):
2336         * html/HTMLHtmlElement.cpp:
2337         (WebCore::HTMLHtmlElement::create):
2338         * html/HTMLImageElement.cpp:
2339         (WebCore::HTMLImageElement::create):
2340         (WebCore::HTMLImageElement::createForJSConstructor):
2341         * html/HTMLInputElement.cpp:
2342         (WebCore::HTMLInputElement::create):
2343         * html/HTMLIsIndexElement.cpp:
2344         (WebCore::HTMLIsIndexElement::create):
2345         * html/HTMLKeygenElement.cpp:
2346         (WebCore::HTMLKeygenElement::create):
2347         * html/HTMLLIElement.cpp:
2348         (WebCore::HTMLLIElement::create):
2349         * html/HTMLLabelElement.cpp:
2350         (WebCore::HTMLLabelElement::create):
2351         * html/HTMLLegendElement.cpp:
2352         (WebCore::HTMLLegendElement::create):
2353         * html/HTMLLinkElement.cpp:
2354         (WebCore::HTMLLinkElement::create):
2355         * html/HTMLMapElement.cpp:
2356         (WebCore::HTMLMapElement::create):
2357         * html/HTMLMarqueeElement.cpp:
2358         (WebCore::HTMLMarqueeElement::create):
2359         * html/HTMLMenuElement.cpp:
2360         (WebCore::HTMLMenuElement::create):
2361         * html/HTMLMetaElement.cpp:
2362         (WebCore::HTMLMetaElement::create):
2363         * html/HTMLModElement.cpp:
2364         (WebCore::HTMLModElement::create):
2365         * html/HTMLNoScriptElement.cpp:
2366         (WebCore::HTMLNoScriptElement::create):
2367         * html/HTMLOListElement.cpp:
2368         (WebCore::HTMLOListElement::create):
2369         * html/HTMLOptGroupElement.cpp:
2370         (WebCore::HTMLOptGroupElement::create):
2371         * html/HTMLOptionElement.cpp:
2372         (WebCore::HTMLOptionElement::create):
2373         (WebCore::HTMLOptionElement::createForJSConstructor):
2374         * html/HTMLParagraphElement.cpp:
2375         (WebCore::HTMLParagraphElement::create):
2376         * html/HTMLParamElement.cpp:
2377         (WebCore::HTMLParamElement::create):
2378         * html/HTMLPreElement.cpp:
2379         (WebCore::HTMLPreElement::create):
2380         * html/HTMLQuoteElement.cpp:
2381         (WebCore::HTMLQuoteElement::create):
2382         * html/HTMLScriptElement.cpp:
2383         (WebCore::HTMLScriptElement::create):
2384         * html/HTMLSelectElement.cpp:
2385         (WebCore::HTMLSelectElement::create):
2386         * html/HTMLSourceElement.cpp:
2387         (WebCore::HTMLSourceElement::create):
2388         * html/HTMLStyleElement.cpp:
2389         (WebCore::HTMLStyleElement::create):
2390         * html/HTMLTableCaptionElement.cpp:
2391         (WebCore::HTMLTableCaptionElement::create):
2392         * html/HTMLTableCellElement.cpp:
2393         (WebCore::HTMLTableCellElement::create):
2394         * html/HTMLTableColElement.cpp:
2395         (WebCore::HTMLTableColElement::create):
2396         * html/HTMLTableElement.cpp:
2397         (WebCore::HTMLTableElement::create):
2398         * html/HTMLTableRowElement.cpp:
2399         (WebCore::HTMLTableRowElement::create):
2400         * html/HTMLTableSectionElement.cpp:
2401         (WebCore::HTMLTableSectionElement::create):
2402         * html/HTMLTextAreaElement.cpp:
2403         (WebCore::HTMLTextAreaElement::create):
2404         * html/HTMLTitleElement.cpp:
2405         (WebCore::HTMLTitleElement::create):
2406         * html/HTMLUListElement.cpp:
2407         (WebCore::HTMLUListElement::create):
2408         * html/HTMLVideoElement.cpp:
2409         (WebCore::HTMLVideoElement::create):
2410         * loader/ImageDocument.cpp:
2411         (WebCore::ImageDocumentElement::create):
2412         * rendering/MediaControlElements.cpp:
2413         (WebCore::MediaControlShadowRootElement::create):
2414         (WebCore::MediaControlElement::create):
2415         (WebCore::MediaControlTimelineContainerElement::create):
2416         (WebCore::MediaControlVolumeSliderContainerElement::create):
2417         (WebCore::MediaControlStatusDisplayElement::create):
2418         (WebCore::MediaControlMuteButtonElement::create):
2419         (WebCore::MediaControlPlayButtonElement::create):
2420         (WebCore::MediaControlSeekButtonElement::create):
2421         (WebCore::MediaControlRewindButtonElement::create):
2422         (WebCore::MediaControlReturnToRealtimeButtonElement::create):
2423         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create):
2424         (WebCore::MediaControlTimelineElement::create):
2425         (WebCore::MediaControlVolumeSliderElement::create):
2426         (WebCore::MediaControlFullscreenButtonElement::create):
2427         (WebCore::MediaControlTimeDisplayElement::create):
2428         * rendering/RenderSlider.cpp:
2429         (WebCore::SliderThumbElement::create):
2430         * rendering/TextControlInnerElements.cpp:
2431         (WebCore::TextControlInnerElement::create):
2432         (WebCore::TextControlInnerTextElement::create):
2433         (WebCore::SearchFieldResultsButtonElement::create):
2434         (WebCore::SearchFieldCancelButtonElement::create):
2435         (WebCore::SpinButtonElement::create):
2436         Use adoptRef.
2437
2438 2010-06-16  Adam Barth  <abarth@webkit.org>
2439
2440         Reviewed by Eric Seidel.
2441
2442         HTML5 parser crash when setTimeout document.write after slow script
2443         https://bugs.webkit.org/show_bug.cgi?id=40726
2444
2445         According to the HTML5 spec, we're supposed to open() a new document if
2446         we receive a document.write() after we've received EOF for the network.
2447         The old parser just dumped those bytes onto the end of the network
2448         stream.  After this patch, our behavior matches Minefield.
2449
2450         Test: http/tests/misc/write-while-waiting.html
2451
2452         * WebCore.xcodeproj/project.pbxproj:
2453         * dom/Document.cpp:
2454         (WebCore::Document::write):
2455         * dom/DocumentParser.h:
2456         * dom/XMLDocumentParser.cpp:
2457         (WebCore::XMLDocumentParser::finishWasCalled):
2458         * dom/XMLDocumentParser.h:
2459         * html/HTML5DocumentParser.cpp:
2460         (WebCore::HTML5DocumentParser::finishWasCalled):
2461         * html/HTML5DocumentParser.h:
2462         (WebCore::HTML5DocumentParser::InputStream::isClosed):
2463         * html/HTMLDocumentParser.cpp:
2464         (WebCore::HTMLDocumentParser::finishWasCalled):
2465         * html/HTMLDocumentParser.h:
2466         * loader/ImageDocument.cpp:
2467         (WebCore::ImageTokenizer::finishWasCalled):
2468         * loader/MediaDocument.cpp:
2469         (WebCore::MediaDocumentParser::finishWasCalled):
2470         * loader/PluginDocument.cpp:
2471         (WebCore::PluginDocumentParser::finishWasCalled):
2472         * loader/SinkDocument.cpp:
2473         (WebCore::SinkDocumentParser::finishWasCalled):
2474         * loader/TextDocument.cpp:
2475         (WebCore::TextDocumentParser::finishWasCalled):
2476
2477 2010-06-16  Martin Robinson  <mrobinson@igalia.com>
2478
2479         Reviewed by Gustavo Noronha Silva.
2480
2481         [GTK] ClipboardGtk::setURL does not match the behavior of other platforms
2482         https://bugs.webkit.org/show_bug.cgi?id=40640
2483
2484         Instead of writing URL labels to the text portion of the clipboard or
2485         drag-and-drop data, write the URL itself. Also escape the label text
2486         of URLs. Abstracts logic into DataObjectGtk, so ClipboardGtk and
2487         PasteboardGtk can share it.
2488
2489         Tests for this issue will be activated when dropping support has been
2490         added to the GTK+ EventSender.
2491
2492         * platform/gtk/ClipboardGtk.cpp:
2493         (WebCore::ClipboardGtk::writeURL): Use DataObjectGtk::setURL.
2494         * platform/gtk/DataObjectGtk.cpp:
2495         (WebCore::DataObjectGtk::setURL):
2496         Added. Write URL to the text portion and remember to escape the
2497         label when creating the markup portion.
2498         * platform/gtk/DataObjectGtk.h: Add declaration of new method.
2499         * platform/gtk/PasteboardGtk.cpp: 
2500         (WebCore::Pasteboard::writeURL): Use DataObjectGtk::setURL.
2501
2502 2010-06-16  Adam Barth  <abarth@webkit.org>
2503
2504         Reviewed by Eric Seidel.
2505
2506         Hit assertion in WebCore::HTML5Token::appendToSystemIdentifier
2507         https://bugs.webkit.org/show_bug.cgi?id=40729
2508
2509         This was a copy/paste error.  Yay for ASSERTs.
2510
2511         * html/HTML5Lexer.cpp:
2512         (WebCore::HTML5Lexer::nextToken):
2513
2514 2010-06-16  Stuart Morgan  <stuartmorgan@chromium.org>
2515
2516         Reviewed by Anders Carlsson.
2517
2518         Bring npapi.h more in line with upstream npapi-headers version:
2519         - Remove obsolete XP_MAC sections.
2520         - Remove Metrowerks defines.
2521         - Add OS/2 defines.
2522         - Add Maemo defines.
2523         - Add new version of the custom Carbon event definitions.
2524         - Sync platform define style/details
2525
2526         https://bugs.webkit.org/show_bug.cgi?id=38666
2527
2528         * bridge/npapi.h:
2529
2530 2010-06-16  Simon Fraser  <simon.fraser@apple.com>
2531
2532         Reviewed by Sam Weinig.
2533
2534         Allow transitions and animations of clip: rect
2535         https://bugs.webkit.org/show_bug.cgi?id=38130
2536         
2537         Make the CSS clip property animatable.
2538
2539         Test: transitions/clip-transition.html
2540
2541         * page/animation/AnimationBase.cpp:
2542         (WebCore::blendFunc): New blend function for LengthBox
2543         (WebCore::AnimationBase::ensurePropertyMap): Create a PropertyWrapper for LengthBoxes.
2544
2545         * platform/LengthBox.h:
2546         (WebCore::LengthBox::LengthBox): New ctor that takes 4 length values.
2547         * rendering/style/RenderStyle.h:
2548         (WebCore::InheritedFlags::setClip): New method that takes a LengthBox.
2549
2550 2010-06-16  Simon Fraser  <simon.fraser@apple.com>
2551
2552         Reviewed by Dan Bernstein.
2553
2554         Fix clipping via CSS clip: with composited descendants
2555         https://bugs.webkit.org/show_bug.cgi?id=40579
2556         
2557         Consult the 'clip' style, as well as overflow, when creating clipping
2558         compositing layers.
2559
2560         Tests: compositing/geometry/clip.html
2561                compositing/overflow/clip-descendents.html
2562
2563         * rendering/RenderLayerBacking.cpp:
2564         (WebCore::clipBox): Utility function that returns the union of the clip and overflow
2565         boxes.
2566         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): Use clipBox() to
2567         get the correct clipping rectangle.
2568         * rendering/RenderLayerCompositor.cpp:
2569         (WebCore::RenderLayerCompositor::enclosingNonStackingClippingLayer): Look for
2570         clip as well as overflow.
2571         (WebCore::RenderLayerCompositor::clipsCompositingDescendants): Ditto.
2572
2573 2010-06-16  Simon Fraser  <simon.fraser@apple.com>
2574
2575         Reviewed by Darin Adler.
2576
2577         REGRESSION: Undocked inspector toolbar is white
2578         https://bugs.webkit.org/show_bug.cgi?id=40644
2579
2580         Make the html element 100% height so that we don't erase the background to white, after r61215.
2581
2582         * inspector/front-end/inspector.css:
2583         (html):
2584
2585 2010-06-16  Brian Weinstein  <bweinstein@apple.com>
2586
2587         Reviewed by Darin Adler.
2588
2589         User scripts injected on start are not run on image documents.
2590         https://bugs.webkit.org/show_bug.cgi?id=40722
2591         <rdar://8087394>
2592         
2593         User scripts that are injected on start are run from FrameLoader::dispatchDocumentElementAvailable,
2594         but this is never called from ImageDocument, so call it when we create a document element for
2595         our image document.
2596
2597         * loader/ImageDocument.cpp:
2598         (WebCore::ImageDocument::createDocumentStructure): Call FrameLoader::dispatchDocumentElementAvailable
2599             after creating our document element.
2600
2601 2010-06-16  Brady Eidson  <beidson@apple.com>
2602
2603         Reviewed by NOBODY (Build fix for Mac)
2604
2605         * WebCore.xcodeproj/project.pbxproj: Make paths relative to the project root.
2606
2607 2010-06-16  Chris Marrin  <cmarrin@apple.com>
2608
2609         Reviewed by Eric Carlson.
2610
2611         https://bugs.webkit.org/show_bug.cgi?id=40643
2612         
2613         Second of three steps - rename Canvas3DLayer to WebGLLayer
2614
2615         * WebCore.xcodeproj/project.pbxproj:
2616         * platform/graphics/mac/Canvas3DLayer.h: Removed.
2617         * platform/graphics/mac/Canvas3DLayer.mm: Removed.
2618         * platform/graphics/mac/GraphicsLayerCA.mm:
2619         (WebCore::GraphicsLayerCA::setContentsToGraphicsContext3D):
2620         * platform/graphics/mac/WebGLLayer.h: Copied from WebCore/platform/graphics/mac/Canvas3DLayer.h.
2621         * platform/graphics/mac/WebGLLayer.mm: Copied from WebCore/platform/graphics/mac/Canvas3DLayer.mm.
2622
2623 2010-06-16  Chris Marrin  <cmarrin@apple.com>
2624
2625         Reviewed by Simon Fraser.
2626
2627         https://bugs.webkit.org/show_bug.cgi?id=40643
2628         
2629         Rename GraphicsContext3DMac.cpp so it can interact with CALayer
2630
2631         * platform/graphics/mac/GraphicsContext3DMac.cpp: Removed.
2632         * platform/graphics/mac/GraphicsContext3DMac.mm: Copied from WebCore/platform/graphics/mac/GraphicsContext3DMac.cpp.
2633         * WebCore.xcodeproj/project.pbxproj
2634
2635 2010-06-16  Nikolas Zimmermann  <nzimmermann@rim.com>
2636
2637         Reviewed by Dirk Schulze.
2638
2639         Add new files, needed in SVG Text rewrite
2640         https://bugs.webkit.org/show_bug.cgi?id=40676
2641
2642         Land SVGTextChunkLayoutInfo.cpp and SVGTextQuery.(cpp|h), both with an "#if 0" on top, as they will be needed
2643         in a later patch, completing the SVG Text rewrite, that will enable them.
2644
2645         Doesn't affect any code for now, it should just reduce the review amount.
2646
2647         * Android.mk:
2648         * CMakeLists.txt:
2649         * GNUmakefile.am:
2650         * WebCore.gypi:
2651         * WebCore.pro:
2652         * WebCore.vcproj/WebCore.vcproj:
2653         * WebCore.xcodeproj/project.pbxproj:
2654         * rendering/SVGTextChunkLayoutInfo.cpp: Added.
2655         (WebCore::cummulatedWidthOrHeightOfTextChunk):
2656         (WebCore::cummulatedWidthOfTextChunk):
2657         (WebCore::cummulatedHeightOfTextChunk):
2658         (WebCore::calculateTextAnchorShiftForTextChunk):
2659         (WebCore::applyTextAnchorToTextChunk):
2660         (WebCore::calculateTextLengthCorrectionForTextChunk):
2661         (WebCore::applyTextLengthCorrectionToTextChunk):
2662         (WebCore::SVGTextChunkLayoutInfo::startTextChunk):
2663         (WebCore::SVGTextChunkLayoutInfo::closeTextChunk):
2664         (WebCore::SVGTextChunkLayoutInfo::buildTextChunks):
2665         (WebCore::SVGTextChunkLayoutInfo::recursiveBuildTextChunks):
2666         (WebCore::SVGTextChunkLayoutInfo::layoutTextChunks):
2667         * rendering/SVGTextChunkLayoutInfo.h: Add missing include, otherwhise compiling SVGTextChunkLayoutInfo.cpp will fail.
2668         * rendering/SVGTextQuery.cpp: Added.
2669         (WebCore::SVGTextQuery::Data::Data):
2670         (WebCore::flowBoxForRenderer):
2671         (WebCore::mapLengthThroughChunkTransformation):
2672         (WebCore::SVGTextQuery::SVGTextQuery):
2673         (WebCore::SVGTextQuery::collectTextBoxesInFlowBox):
2674         (WebCore::SVGTextQuery::executeQuery):
2675         (WebCore::SVGTextQuery::mapStartAndLengthIntoChunkPartCoordinates):
2676         (WebCore::SVGTextQuery::measureCharacterRange):
2677         (WebCore::NumberOfCharactersData::NumberOfCharactersData):
2678         (WebCore::SVGTextQuery::numberOfCharactersCallback):
2679         (WebCore::SVGTextQuery::numberOfCharacters):
2680         (WebCore::TextLengthData::TextLengthData):
2681         (WebCore::SVGTextQuery::textLengthCallback):
2682         (WebCore::SVGTextQuery::textLength):
2683         (WebCore::SubStringLengthData::SubStringLengthData):
2684         (WebCore::SVGTextQuery::subStringLengthCallback):
2685         (WebCore::SVGTextQuery::subStringLength):
2686         (WebCore::StartPositionOfCharacterData::StartPositionOfCharacterData):
2687         (WebCore::SVGTextQuery::startPositionOfCharacterCallback):
2688         (WebCore::SVGTextQuery::startPositionOfCharacter):
2689         (WebCore::EndPositionOfCharacterData::EndPositionOfCharacterData):
2690         (WebCore::SVGTextQuery::endPositionOfCharacterCallback):
2691         (WebCore::SVGTextQuery::endPositionOfCharacter):
2692         (WebCore::RotationOfCharacterData::RotationOfCharacterData):
2693         (WebCore::SVGTextQuery::rotationOfCharacterCallback):
2694         (WebCore::SVGTextQuery::rotationOfCharacter):
2695         (WebCore::ExtentOfCharacterData::ExtentOfCharacterData):
2696         (WebCore::SVGTextQuery::extentOfCharacterCallback):
2697         (WebCore::SVGTextQuery::extentOfCharacter):
2698         (WebCore::CharacterNumberAtPositionData::CharacterNumberAtPositionData):
2699         (WebCore::SVGTextQuery::characterNumberAtPositionCallback):
2700         (WebCore::SVGTextQuery::characterNumberAtPosition):
2701         * rendering/SVGTextQuery.h: Added.
2702
2703 2010-06-16  Nikolas Zimmermann  <nzimmermann@rim.com>
2704
2705         Reviewed by Dirk Schulze.
2706
2707         Provide floating-point support for text selection framework
2708         https://bugs.webkit.org/show_bug.cgi?id=40665
2709
2710         This is the first chunk of the SVG Text rewrite patches.
2711         offsetForPosition() / selectionRectForText() should accept float/FloatPoint arguments instead
2712         of int/IntPoint. offsetForPosition() already worked with floats internally in Qt and Mac.
2713         selectionRectForText() was already returning a FloatRect, but the passed in origin was an integer.
2714         Fixing these problems in order to support sub-pixel positioning in the upcoming SVG Text rewrite patch.
2715
2716         Add a glyphScale parameter to TextRun, that will be used to support text selection
2717         in lengthAdjust/textLength scenarios in SVG text, soon.
2718
2719         Doesn't affect any testcases so far. HTML is not affected in any way,
2720         as it only ever passes integers to these functions.
2721
2722         * platform/graphics/Font.cpp:
2723         (WebCore::Font::selectionRectForText):
2724         (WebCore::Font::offsetForPosition):
2725         * platform/graphics/Font.h:
2726         * platform/graphics/FontFastPath.cpp:
2727         (WebCore::Font::selectionRectForSimpleText):
2728         (WebCore::Font::offsetForPositionForSimpleText):
2729         * platform/graphics/TextRun.h:
2730         (WebCore::TextRun::TextRun):
2731         (WebCore::TextRun::glyphScale):
2732         (WebCore::TextRun::setGlyphScale):
2733         (WebCore::TextRun::applyGlyphScaling):
2734         * platform/graphics/WidthIterator.cpp:
2735         (WebCore::WidthIterator::advance):
2736         * platform/graphics/chromium/FontChromiumWin.cpp:
2737         (WebCore::Font::selectionRectForComplexText):
2738         (WebCore::Font::offsetForPositionForComplexText):
2739         * platform/graphics/chromium/FontLinux.cpp:
2740         (WebCore::Font::offsetForPositionForComplexText):
2741         (WebCore::Font::selectionRectForComplexText):
2742         * platform/graphics/efl/FontEfl.cpp:
2743         (WebCore::Font::offsetForPositionForComplexText):
2744         (WebCore::Font::selectionRectForComplexText):
2745         * platform/graphics/gtk/FontGtk.cpp:
2746         (WebCore::Font::offsetForPositionForComplexText):
2747         (WebCore::Font::selectionRectForComplexText):
2748         * platform/graphics/haiku/FontHaiku.cpp:
2749         (WebCore::Font::selectionRectForComplexText):
2750         (WebCore::Font::offsetForPositionForComplexText):
2751         * platform/graphics/mac/ComplexTextController.cpp:
2752         (WebCore::ComplexTextController::offsetForPosition):
2753         * platform/graphics/mac/ComplexTextController.h:
2754         * platform/graphics/mac/FontComplexTextMac.cpp:
2755         (WebCore::Font::selectionRectForComplexText):
2756         (WebCore::Font::offsetForPositionForComplexText):
2757         * platform/graphics/qt/FontQt.cpp:
2758         (WebCore::Font::offsetForPositionForSimpleText):
2759         (WebCore::Font::offsetForPositionForComplexText):
2760         (WebCore::Font::selectionRectForSimpleText):
2761         (WebCore::Font::selectionRectForComplexText):
2762         * platform/graphics/win/FontWin.cpp:
2763         (WebCore::Font::selectionRectForComplexText):
2764         (WebCore::Font::offsetForPositionForComplexText):
2765         * platform/graphics/wince/FontWince.cpp:
2766         (WebCore::Font::offsetForPositionForComplexText):
2767         (WebCore::Font::selectionRectForComplexText):
2768         * platform/graphics/wx/FontWx.cpp:
2769         (WebCore::Font::selectionRectForComplexText):
2770         (WebCore::Font::offsetForPositionForComplexText):
2771         * svg/SVGFont.cpp:
2772         (WebCore::Font::selectionRectForTextUsingSVGFont):
2773         (WebCore::Font::offsetForPositionForTextUsingSVGFont):
2774
2775 2010-06-16  Anton Muhin  <antonm@chromium.org>
2776
2777         Reviewed by Nate Chapin.
2778
2779         [v8] Introduce single element caches for WebCore::String to v8::String conversions
2780         https://bugs.webkit.org/show_bug.cgi?id=40435
2781         Measurements show that for some web apps (GMail, Wave) and some scenarios
2782         (intensive reading and/or keeping a tab open for a long time),
2783         hit rate lies in 30--50% interval.
2784         Inlining fast case gives another minor performance win.
2785
2786         * bindings/v8/V8Binding.cpp:
2787         (WebCore::getStringCache):
2788         (WebCore::v8ExternalStringSlow):
2789         * bindings/v8/V8Binding.h:
2790         (WebCore::v8ExternalString):
2791
2792 2010-06-16  Antonio Gomes  <tonikitoo@webkit.org>
2793
2794         Reviewed by Kenneth Christiansen.
2795
2796         Spatial Navigation: using offset{Left,Top} is not enough to get the proper inner frames position
2797         https://bugs.webkit.org/show_bug.cgi?id=39439
2798
2799         As pointed out by Darin Adler in https://bugs.webkit.org/show_bug.cgi?id=18662#c20,
2800         "It's not correct to use the offsetLeft and offsetTop of the frame owner element's renderer because
2801         that's just the distance from the offsetParent, not the absolute position".
2802
2803         Patch fixes that behavior by now considering the offsetTop and offsetLeft the offsetParent recursively,
2804         starting from the HtmlFrameOwnerElement. Previously, only calling offsetTop and offsetLeft works
2805         because all tests were done in htmls where the {i}frame element was a directly a child of the body,
2806         e.g. <html>...<body><iframe src=xxx>....<body></html>.
2807
2808         Test: fast/events/spatial-navigation/snav-iframe-recursive-offset-parent.html
2809
2810         * page/SpatialNavigation.cpp:
2811         (WebCore::renderRectRelativeToRootDocument):
2812
2813 2010-06-16  Dan Bernstein  <mitz@apple.com>
2814
2815         Try to fix the Tiger build
2816
2817         * platform/graphics/mac/SimpleFontDataMac.mm:
2818         (WebCore::SimpleFontData::platformBoundsForGlyph):
2819
2820 2010-06-16  Dan Bernstein  <mitz@apple.com>
2821
2822         Try to fix the Tiger build
2823
2824         * platform/graphics/mac/SimpleFontDataMac.mm:
2825         (WebCore::SimpleFontData::platformBoundsForGlyph):
2826
2827 2010-06-16  Dan Bernstein  <mitz@apple.com>
2828
2829         Reviewed by Alexey Proskuryakov.
2830
2831         <rdar://problem/8077119> REGRESSION (r60247): Google Reader contains the tops of pieces of unidentifiable text under feed headlines.
2832         https://bugs.webkit.org/show_bug.cgi?id=40386
2833
2834         Test: platform/mac/fast/text/x-height.html
2835
2836         The result of platformBoundsForGlyph() is in flipped coordinates, whereas the result of
2837         -[NSFont boundingRectForGlyph:] was not. r60247 failed to account for this.
2838
2839         * platform/graphics/mac/SimpleFontDataMac.mm:
2840         (WebCore::SimpleFontData::platformInit): Measure the height of the x glyph above the baseline
2841         correctly.
2842         (WebCore::SimpleFontData::platformBoundsForGlyph): Return a rect in flipped coordinates on Tiger
2843         as well.
2844
2845 2010-06-16  Adam Barth  <abarth@webkit.org>
2846
2847         Reviewed by Eric Seidel.
2848
2849         Don't crash when a document ends with an entity
2850         https://bugs.webkit.org/show_bug.cgi?id=40658
2851
2852         When we SWITCH_TO a state, we're expecting our caller to have advanced
2853         the source.  Rather than have all the callers check for empty, we do
2854         that ourselves.
2855
2856         * html/HTML5Lexer.cpp:
2857
2858 2010-06-15  Adam Barth  <abarth@webkit.org>
2859
2860         Reviewed by Eric Seidel.
2861
2862         Enable HTML5 lexer
2863         https://bugs.webkit.org/show_bug.cgi?id=40650
2864
2865         * page/Settings.cpp:
2866         (WebCore::Settings::Settings):
2867
2868 2010-06-15  Mark Rowe  <mrowe@apple.com>
2869
2870         Rubber-stamped by David Harrison.
2871
2872         sqlite3_prepare16_v2 is not documented as always setting "tail" during error cases.
2873         Explicitly initialize it to null, just to be safe.
2874
2875         * platform/sql/SQLiteStatement.cpp:
2876         (WebCore::SQLiteStatement::prepare):
2877
2878 2010-06-15  Mark Rowe  <mrowe@apple.com>
2879
2880         Reviewed by Brady Eidson.
2881
2882         <rdar://problem/8091103> URLs not added to history when initial load happens via back/forward navigation
2883
2884         Back/forward navigation currently does not create or update items in the global history. This is usually
2885         desirable, except for in the event where the back/forward list was created programmatically and attached
2886         to the WebView and the initial load in that WebView is being performed as a result of a back/forward
2887         navigation. In that situation it is preferable to ensure that global history item is created or updated.
2888
2889         No test case is added because DumpRenderTree is not able to test the scenario where the initial
2890         load in a WebView occurs via a back/forward navigation.
2891
2892         * loader/FrameLoader.cpp:
2893         (WebCore::FrameLoader::transitionToCommitted): If we're committing the first load in this frame as a
2894         back/forward navigation then we should update the history as if it were a standard load, with the
2895         exception of updating the back/forward list.
2896         * loader/HistoryController.cpp:
2897         (WebCore::HistoryController::updateForStandardLoad): Add a parameter to allow callers to skip updating
2898         the back/forward list.
2899         * loader/HistoryController.h:
2900         (WebCore::HistoryController::):
2901
2902 2010-06-15  Kinuko Yasuda  <kinuko@chromium.org>
2903
2904         Reviewed by David Levin.
2905
2906         Fix compilation errors in BlobBuilder with FILE_WRITER enabled
2907         https://bugs.webkit.org/show_bug.cgi?id=40606
2908
2909         No functionality change so no new tests.
2910
2911         * html/BlobBuilder.cpp:
2912         * html/BlobBuilder.h:
2913
2914 2010-06-15  Jian Li  <jianli@chromium.org>
2915
2916         Reviewed by David Levin.
2917
2918         Move type attribute from File.idl to Blob.idl per latest File API spec.
2919         https://bugs.webkit.org/show_bug.cgi?id=40642
2920
2921         * html/Blob.idl:
2922         * html/File.idl:
2923
2924 2010-06-15  Darin Adler  <darin@apple.com>
2925
2926         Reviewed by Adam Barth.
2927
2928         Move functions out of Frame class that were marked "move to Chrome"
2929         https://bugs.webkit.org/show_bug.cgi?id=39636
2930
2931         Refactoring that does not require new tests.
2932
2933         * loader/FrameLoader.cpp:
2934         (WebCore::FrameLoader::didOpenURL): Call setStatus and setDefaultStatus
2935         on DOMWindow rather than going through Frame.
2936         (WebCore::FrameLoader::open): Ditto.
2937         (WebCore::FrameLoader::continueLoadAfterNavigationPolicy): Call
2938         shouldClose on this object instead of going through Frame.
2939
2940         * page/DOMWindow.cpp:
2941         (WebCore::DOMWindow::dispatchAllPendingBeforeUnloadEvents): Call
2942         shouldClose on FrameLoader instead of going through Frame.
2943         (WebCore::DOMWindow::focus): Moved the code from Frame::focusWindow
2944         in here.
2945         (WebCore::DOMWindow::blur): Moved the code from Frame::unfocusWindow
2946         in here.
2947         (WebCore::DOMWindow::close): Moved the code from Frame::scheduleClose
2948         in here.
2949         (WebCore::DOMWindow::setStatus): Moved the code from
2950         Frame::setJSStatusBarText in here.
2951         (WebCore::DOMWindow::setDefaultStatus): Moved the code from
2952         Frame::setJSDefaultStatusBarText in here.
2953
2954         * page/DOMWindow.h: Added m_status and m_defaultStatus members to
2955         store the status messages being set by the DOM.
2956
2957         * page/Frame.cpp: Removed all the functions that were marked
2958         "to be moved into Chrome".
2959         * page/Frame.h: Ditto.
2960
2961 2010-06-15  Simon Fraser  <simon.fraser@apple.com>
2962
2963         Fix crashing tests; need to check for null documentElement().
2964
2965         * rendering/RenderView.cpp:
2966         (WebCore::RenderView::paintBoxDecorations):
2967
2968 2010-06-15  Simon Fraser  <simon.fraser@apple.com>
2969
2970         Reviewed by Dave Hyatt.
2971
2972         Garbage shown outside HTML if HTML is absolutely positioned
2973         https://bugs.webkit.org/show_bug.cgi?id=36163
2974         
2975         Add a check that the root renderer (the document element's renderer) covers
2976         the entire viewport before deciding that we don't need the RenderView
2977         to paint its background. Fixes lack of painting with positioned, floated, and
2978         display: table html elements.
2979
2980         Test: fast/repaint/positioned-document-element.html
2981
2982         * rendering/RenderView.cpp:
2983         (WebCore::RenderView::paintBoxDecorations):
2984
2985 2010-06-15  Simon Fraser  <simon.fraser@apple.com>
2986
2987         Reviewed by Dan Bernstein.
2988
2989         Safari 5 does not clear background with transformed html element
2990         https://bugs.webkit.org/show_bug.cgi?id=40498
2991         
2992         When the document element is composited, ensure that the FrameView
2993         paints the background, because the composited layer may be transparent,
2994         or might get moved via animation.
2995
2996         Test: compositing/repaint/composited-document-element.html
2997
2998         * rendering/RenderView.cpp:
2999         (WebCore::isComposited):
3000         (WebCore::rendererObscuresBackground):
3001
3002 2010-06-15  Xan Lopez  <xlopez@igalia.com>
3003
3004         Try to fix GTK+ build.
3005
3006         * platform/gtk/GtkVersioning.h:
3007
3008 2010-06-15  Darin Fisher  <darin@chromium.org>
3009
3010         Reviewed by Brady Eidson.
3011
3012         Introduce HistoryItem::itemSequenceNumber and use it to identify
3013         HistoryItems that are clones of one another.
3014
3015         Changes HistoryController::recursiveGoToItem to use itemSequenceNumber
3016         equality instead of isTargetItem as the pre-requisite for not calling
3017         FrameLoader::loadItem.
3018
3019         Changes FrameLoader::loadItem to require equivalent
3020         documentSequenceNumber before initiating a same document navigation.
3021         This alone would appear to fix the bug, but it does not go far enough
3022         since without the itemSequenceNumber equality check, we'd re-load more
3023         often than we should.
3024
3025         Moves documentSequenceNumber assignment into createItemTree as cleanup
3026         and to ensure that it gets called properly whenever we create a cloned
3027         HistoryItem.  (createItemTree's mission is to create clones up until
3028         or including the target frame depending on the value of the doClip
3029         parameter.)
3030
3031         Removes the now unused HistoryController::urlsMatchItem.
3032
3033         https://bugs.webkit.org/show_bug.cgi?id=40451
3034
3035         Test: fast/history/history-back-within-subframe.html
3036               http/tests/navigation/history-back-across-form-submission-to-fragment.html
3037
3038         * history/HistoryItem.cpp:
3039         (WebCore::generateSequenceNumber):
3040         (WebCore::HistoryItem::HistoryItem):
3041         * history/HistoryItem.h:
3042         (WebCore::HistoryItem::setItemSequenceNumber):
3043         (WebCore::HistoryItem::itemSequenceNumber):
3044         * loader/FrameLoader.cpp:
3045         (WebCore::FrameLoader::loadItem):
3046         * loader/HistoryController.cpp:
3047         (WebCore::HistoryController::updateBackForwardListForFragmentScroll):
3048         (WebCore::HistoryController::createItemTree):
3049         (WebCore::HistoryController::recursiveGoToItem):
3050         (WebCore::HistoryController::pushState):
3051         * loader/HistoryController.h:
3052
3053 2010-06-15  Xan Lopez  <xlopez@igalia.com>
3054
3055         Reviewed by Gustavo Noronha.
3056
3057         [GTK] Does not compile with -DGSEAL_ENABLE
3058         https://bugs.webkit.org/show_bug.cgi?id=37851
3059
3060         Fix compilation with GSEAL_ENABLE.
3061
3062         * platform/gtk/GtkVersioning.h:
3063         * platform/gtk/PlatformScreenGtk.cpp:
3064         (WebCore::screenDepth):
3065         (WebCore::screenDepthPerComponent):
3066         * platform/gtk/PopupMenuGtk.cpp:
3067         (WebCore::PopupMenu::show):
3068         * platform/gtk/ScrollbarGtk.cpp:
3069         (ScrollbarGtk::detachAdjustment):
3070         (ScrollbarGtk::updateThumbPosition):
3071         (ScrollbarGtk::updateThumbProportion):
3072         * plugins/gtk/PluginViewGtk.cpp:
3073         (WebCore::PluginView::paint):
3074         (WebCore::PluginView::initXEvent):
3075         (WebCore::PluginView::platformGetValue):
3076         (WebCore::PluginView::platformStart):
3077         * plugins/gtk/gtk2xtbin.c:
3078         (gtk_xtbin_realize):
3079         (gtk_xtbin_new):
3080         (gtk_xtbin_set_position):
3081         (gtk_xtbin_unrealize):
3082
3083 2010-06-15  Xan Lopez  <xlopez@igalia.com>
3084
3085         Unreviewed build fix.
3086
3087         Fix the build when WebSockets are disabled.
3088
3089         * bindings/js/JSWorkerContextCustom.cpp:
3090
3091 2010-06-15  Simon Fraser  <simon.fraser@apple.com>
3092
3093         Reviewed by Dan Bernstein.
3094
3095         YouTube thumbnail borders vanish during transition
3096         https://bugs.webkit.org/show_bug.cgi?id=40551
3097         
3098         Turn off the direct image optimization if the image has a clip style, so that is is
3099         correctly rendered with the clip.
3100
3101         Test: compositing/images/clip-on-directly-composited-image.html
3102
3103         * rendering/RenderLayerBacking.cpp:
3104         (WebCore::RenderLayerBacking::isDirectlyCompositedImage):
3105
3106 2010-06-15  Yury Semikhatsky  <yurys@chromium.org>
3107
3108         Reviewed by Pavel Feldman.
3109
3110         [v8] Web Inspector: make ui tests pass when ScriptDebugServer is used
3111         https://bugs.webkit.org/show_bug.cgi?id=40623
3112
3113         * bindings/v8/JavaScriptCallFrame.cpp:
3114         (WebCore::JavaScriptCallFrame::functionName): return empty string for anonymous functions instead of [anonymous].
3115         * bindings/v8/ScriptDebugServer.cpp:
3116         (WebCore::ScriptDebugServer::handleV8DebugEvent): autocontinue on syntax errors since there is no stack trace and
3117         not much to inspect.
3118
3119 2010-06-15  Adam Roben  <aroben@apple.com>
3120
3121         Make WebCore's and JavaScriptCore's DerivedSources available for debugging in production builds
3122
3123         Fixes <http://webkit.org/b/40626> <rdar://problem/8094205>.
3124
3125         Reviewed by Sam Weinig.
3126
3127         * WebCore.vcproj/WebCore.make: Copy the contents of WebCore's
3128         DerivedSources directory to AppleInternal/Sources/WebCore.
3129
3130 2010-06-15  Zhenyao Mo  <zmo@google.com>
3131
3132         Reviewed by Dimitri Glazkov.
3133
3134         Bring framebuffer functions to GLES2 conformance
3135         https://bugs.webkit.org/show_bug.cgi?id=40175
3136
3137         Test: fast/canvas/webgl/framebuffer-test.html
3138
3139         * html/canvas/WebGLRenderingContext.cpp:
3140         (WebCore::WebGLRenderingContext::checkFramebufferStatus): Check input parameters and deal with default framebuffer situation.
3141         (WebCore::WebGLRenderingContext::framebufferRenderbuffer): Check input parameters.
3142         (WebCore::WebGLRenderingContext::framebufferTexture2D): Ditto.
3143         (WebCore::WebGLRenderingContext::getFramebufferAttachmentParameter): Ditto.
3144         (WebCore::WebGLRenderingContext::validateFramebufferFuncParameters): Check input parameters.
3145         * html/canvas/WebGLRenderingContext.h: Add validateFramebufferFuncParameters.
3146
3147 2010-06-15  Patrick Gansterer  <paroga@paroga.com>
3148
3149         Reviewed by David Levin.
3150
3151         Buildfix for ResourceHandleWin after r24202 and r55542.
3152         https://bugs.webkit.org/show_bug.cgi?id=32963
3153
3154         * platform/network/win/ResourceHandleWin.cpp:
3155         (WebCore::ResourceHandle::onHandleCreated):
3156         (WebCore::ResourceHandle::onRequestComplete):
3157         (WebCore::transferJobStatusCallback):
3158         (WebCore::ResourceHandle::start):
3159
3160 2010-06-12  Pavel Feldman  <pfeldman@chromium.org>
3161
3162         Reviewed by Joe Pecoraro.
3163
3164         Web Inspector: Should not expose window.console._inspectorCommandLineAPI to the web.
3165
3166         https://bugs.webkit.org/show_bug.cgi?id=40500
3167
3168         * inspector/front-end/InjectedScript.js:
3169         (injectedScriptConstructor):
3170         (injectedScriptConstructor.):
3171
3172 2010-06-15  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
3173
3174         Reviewed by Simon Hausmann.
3175
3176         [Qt] The qt_webkit_version.pri file gets overwritten on install
3177         https://bugs.webkit.org/show_bug.cgi?id=40487
3178
3179         Don't install qt_webkit_version.pri when building WebKit inside of Qt.
3180         The import of WebKit into Qt will take care of providing the file
3181         in mkspecs/modules and it'll be installed through projects.pro.
3182
3183         * WebCore.pro:
3184
3185 2010-06-15  Tony Chang  <tony@chromium.org>
3186
3187         Reviewed by Ojan Vafai.
3188
3189         resolve urls in text/html clipboard data
3190         https://bugs.webkit.org/show_bug.cgi?id=40044
3191
3192         Allow text/html data copied from a page to contain full URLs when
3193         dragging or copy/pasting.
3194
3195         Tests: editing/pasteboard/copy-resolves-urls.html
3196                http/tests/misc/copy-resolves-urls.html
3197
3198         * WebCore.base.exp:
3199         * editing/markup.cpp:
3200         (WebCore::appendStartMarkup):
3201         (WebCore::getStartMarkup):
3202         (WebCore::MarkupAccumulator::appendMarkup):
3203         (WebCore::createMarkup):
3204         * editing/markup.h:
3205         (WebCore::):
3206         * platform/chromium/ClipboardChromium.cpp:
3207         (WebCore::ClipboardChromium::writeRange):
3208         * platform/chromium/PasteboardChromium.cpp:
3209         (WebCore::Pasteboard::writeSelection):
3210         * platform/gtk/ClipboardGtk.cpp:
3211         (WebCore::ClipboardGtk::writeRange):
3212         * platform/gtk/DataObjectGtk.cpp:
3213         (WebCore::DataObjectGtk::markup):
3214         * platform/gtk/PasteboardGtk.cpp:
3215         (WebCore::Pasteboard::writeSelection):
3216         * platform/haiku/PasteboardHaiku.cpp:
3217         (WebCore::Pasteboard::writeSelection):
3218         * platform/qt/ClipboardQt.cpp:
3219         (WebCore::ClipboardQt::writeRange):
3220         * platform/qt/PasteboardQt.cpp:
3221         (WebCore::Pasteboard::writeSelection):
3222
3223 2010-06-14  Chris Fleizach  <cfleizach@apple.com>
3224
3225         No review. GTK build fix.
3226
3227         AX: need ListItemRole and PresentationalRole
3228         https://bugs.webkit.org/show_bug.cgi?id=40133
3229
3230         Mostly speculative fix to make GTK unit tests work.
3231
3232         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
3233         (atkRole):
3234         (webkit_accessible_get_role):
3235
3236 2010-06-14  Eric Carlson  <eric.carlson@apple.com>
3237
3238         Reviewed by Dan Bernstein.
3239
3240         <rdar://problem/8090895> Update http streaming MIME types
3241
3242         * platform/MIMETypeRegistry.cpp:
3243         (WebCore::TypeExtensionPair::): Add http streaming MIME synonyms.
3244
3245 2010-06-14  Eric Carlson  <eric.carlson@apple.com>
3246
3247         Reviewed by Oliver Hunt.
3248
3249         audio/x-mp3 MIME type not recognized
3250         <rdar://problem/7875393>
3251         https://bugs.webkit.org/show_bug.cgi?id=40594
3252         
3253         Allow MIMETypeRegistry to have more than one MIME type for a
3254         media file extension, and have the QTKit media engine register
3255         all MIME types it can find for each file type QTKit supports.
3256
3257         Test: media/media-can-play-mp3.html
3258
3259         * platform/MIMETypeRegistry.cpp:
3260         (WebCore::mediaMIMETypeMap): Update for new HashMap format.
3261         (WebCore::TypeExtensionPair::): Store String+Vector<String>
3262         (WebCore::MIMETypeRegistry::getMediaMIMETypeForExtension): Only consult
3263         mediaMIMETypeMap(), it has the canonical answer.
3264         (WebCore::MIMETypeRegistry::getMediaMIMETypesForExtension): New, return
3265         a Vector of all MIME types for an extension.
3266         * platform/MIMETypeRegistry.h:
3267         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
3268         (WebCore::addFileTypesToCache): Add all MIME types returned in the 
3269         getMediaMIMETypesForExtension Vector.
3270
3271 2010-06-14  Mark Rowe  <mrowe@apple.com>
3272
3273         Reviewed by Brady Eidson.
3274
3275         <rdar://problem/8071866> REGRESSION: Crash on launch on Tiger and Leopard with network home folder
3276
3277         * platform/sql/SQLiteStatement.cpp:
3278         (WebCore::SQLiteStatement::prepare): Don't assume that tail is always non-null, since that may
3279         not be the case with some versions of SQLite. Instead we must null-check before dereferencing.
3280
3281 2010-06-14  Anders Carlsson  <andersca@apple.com>
3282
3283         Fix Tiger build.
3284
3285         * plugins/mac/PluginDataMac.mm:
3286
3287 2010-06-14  Anders Carlsson  <andersca@apple.com>
3288
3289         Reviewed by Darin Adler.
3290
3291         Use an array for extensions in MimeClassInfo
3292         https://bugs.webkit.org/show_bug.cgi?id=40602
3293
3294         Get rid of MimeClassInfo::suffixes and replace it with an array of extensions.
3295
3296         * plugins/MimeType.cpp:
3297         (WebCore::MimeType::suffixes):
3298         Create a string of joined extensions.
3299
3300         * plugins/MimeType.h:
3301         * plugins/PluginData.h:
3302         (WebCore::operator==):
3303         * plugins/chromium/PluginDataChromium.cpp:
3304         (WebCore::getPluginMimeTypeFromExtension):
3305         * plugins/gtk/PluginDataGtk.cpp:
3306         (WebCore::PluginData::initPlugins):
3307         * plugins/mac/PluginDataMac.mm:
3308         (WebCore::PluginData::initPlugins):
3309         * plugins/qt/PluginDataQt.cpp:
3310         (WebCore::PluginData::initPlugins):
3311         * plugins/win/PluginDataWin.cpp:
3312         (WebCore::PluginData::initPlugins):
3313         * plugins/wx/PluginDataWx.cpp:
3314         (WebCore::PluginData::initPlugins):
3315
3316 2010-06-14  Adam Barth  <abarth@webkit.org>
3317
3318         Unreviewed.
3319
3320         Add an include to try to fix Chromium build.
3321
3322         * html/HTML5DocumentParser.cpp:
3323
3324 2010-06-14  Eric Seidel  <eric@webkit.org>
3325
3326         Reviewed by Adam Barth.
3327
3328         Safari beach-balls loading large pages with HTML5 parser
3329         https://bugs.webkit.org/show_bug.cgi?id=40596
3330
3331         Implement parser yielding, similar to how the old
3332         HTMLDocumentParser yields.
3333
3334         This implementation re-uses the tokenizerTimeDelay and
3335         tokenizerChunkSize settings even though they don't map exactly
3336         to the token loop that the HTML5 parser uses.
3337
3338         * dom/DocumentParser.h:
3339          - Add a FIXME for processingData() and clarify how the
3340            appendData flag is used by renaming it to isFromNetwork.
3341         * html/HTML5DocumentParser.cpp:
3342         (WebCore::parserTimeLimit):
3343          - Defaults accessor, probably belongs on Page.
3344         (WebCore::parserChunkSize):
3345          - Defaults accessor, probably belongs on Page.
3346         (WebCore::HTML5DocumentParser::HTML5DocumentParser):
3347         (WebCore::HTML5DocumentParser::stopParsing):
3348          - Stop the continue-parsing timer if active.
3349         (WebCore::HTML5DocumentParser::processingData):
3350          - Implement this poorly understood accessor to match
3351            the old parser's behavior.  It's unclear what this does
3352            and it does not affect any layout tests to my knowledge
3353            but likely affects the WebKit API in some way.
3354         (WebCore::HTML5DocumentParser::pumpLexerIfPossible):
3355          - Pass SynchronousMode.
3356          - Do not ever pump if we've yielded to the timer.
3357         (WebCore::HTML5DocumentParser::PumpSession::PumpSession):
3358          - A struct for storing the yield counters.
3359         (WebCore::HTML5DocumentParser::shouldContinueParsing):
3360          - Mostly matches HTMLDocumentParser::shouldContinueParsing.
3361         (WebCore::HTML5DocumentParser::pumpLexer):
3362          - Respect SynchronousMode.
3363          - ASSERT that a timer is not scheduled if we're pumping.
3364         (WebCore::isLayoutTimerActive):
3365          - This belongs on Document.
3366         (WebCore::HTML5DocumentParser::continueNextChunkTimerFired):
3367         (WebCore::HTML5DocumentParser::write):
3368         (WebCore::HTML5DocumentParser::end):
3369          - We should never end() if a timer is still outstanding.
3370         (WebCore::HTML5DocumentParser::attemptToEnd):
3371         (WebCore::HTML5DocumentParser::endIfDelayed):
3372         (WebCore::HTML5DocumentParser::resumeParsingAfterScriptExecution):
3373         * html/HTML5DocumentParser.h:
3374         (WebCore::HTML5DocumentParser::):
3375         * html/HTMLDocumentParser.cpp:
3376          - Clarify the old TimeDelay and ChunkSize constants.
3377
3378 2010-06-14  Adam Barth  <abarth@webkit.org>
3379
3380         Reviewed by Eric Seidel.
3381
3382         Add a preload scanner for the HTML5 parser
3383         https://bugs.webkit.org/show_bug.cgi?id=40557
3384
3385         This patch adds a simple preload scanner for the HTML5 parser.  This
3386         preload scanner is not as awesome as the old one because it doesn't
3387         scan CSS, but it's much simpler.
3388
3389         * Android.mk:
3390         * CMakeLists.txt:
3391         * GNUmakefile.am:
3392         * WebCore.gypi:
3393         * WebCore.pro:
3394         * WebCore.vcproj/WebCore.vcproj:
3395         * WebCore.xcodeproj/project.pbxproj:
3396             - Build file torture.
3397         * html/HTML5DocumentParser.cpp:
3398         (WebCore::HTML5DocumentParser::write):
3399             - Call into the preload scanner when waiting for a script.
3400         * html/HTML5DocumentParser.h:
3401         * html/HTML5PreloadScanner.cpp: Copied from WebCore/html/PreloadScanner.cpp.
3402         (WebCore::HTML5PreloadScanner::HTML5PreloadScanner):
3403         (WebCore::HTML5PreloadScanner::scan):
3404             - A simple loop to pump the preload scanner's lexer.
3405         (WebCore::HTML5PreloadScanner::processToken):
3406             - Preload interesting resources.  Stolen from the old preload
3407               scanner.
3408         (WebCore::HTML5PreloadScanner::scanningBody):
3409         * html/HTML5PreloadScanner.h: Copied from WebCore/html/PreloadScanner.h.
3410
3411 2010-06-14  Adam Barth  <abarth@webkit.org>
3412
3413         Reviewed by Eric Seidel.
3414
3415         Constify some HTML5Token methods
3416         https://bugs.webkit.org/show_bug.cgi?id=40592
3417
3418         I keep wanting these methods to be const.  Eric wanted this in a
3419         separate patch.
3420
3421         * html/HTML5Lexer.h:
3422         (WebCore::HTML5Lexer::state):
3423         * html/HTML5Token.h:
3424         (WebCore::HTML5Token::attributes):
3425         (WebCore::HTML5Token::name):
3426         (WebCore::HTML5Token::characters):
3427         (WebCore::HTML5Token::comment):
3428         (WebCore::HTML5Token::publicIdentifier):
3429         (WebCore::HTML5Token::systemIdentifier):
3430         * html/HTML5TreeBuilder.cpp:
3431         (WebCore::convertToOldStyle):
3432         (WebCore::HTML5TreeBuilder::adjustedLexerState):
3433             - Technically, this might belong in the other patch, but I think
3434               it's fine here.
3435         (WebCore::HTML5TreeBuilder::passTokenToLegacyParser):
3436         * html/HTML5TreeBuilder.h:
3437
3438 2010-06-14  Dumitru Daniliuc  <dumi@chromium.org>
3439
3440         Unreviewed, build fix.
3441
3442         * WebCore.xcodeproj/project.pbxproj:
3443
3444 2010-06-14  Dimitri Glazkov  <dglazkov@chromium.org>
3445
3446         Unreviewed, build fix.
3447
3448         Remove accidental specifying of the class name twice.
3449
3450         * html/HTMLFormElement.cpp:
3451         (WebCore::HTMLFormElement::prepareFormData): Removed my ghastly typo.
3452
3453 2010-06-14  Dumitru Daniliuc  <dumi@chromium.org>
3454
3455         Reviewed by Adam Barth.
3456
3457         Get DatabaseTracker ready for sync DBs.
3458         https://bugs.webkit.org/show_bug.cgi?id=39041
3459
3460         * storage/AbstractDatabase.cpp:
3461         (WebCore::AbstractDatabase::~AbstractDatabase):
3462         * storage/AbstractDatabase.h:
3463         * storage/Database.cpp:
3464         (WebCore::Database::closeImmediately):
3465         * storage/Database.h:
3466         (WebCore::Database::scriptExecutionContext):
3467         * storage/DatabaseTracker.cpp:
3468         (WebCore::DatabaseTracker::getMaxSizeForDatabase):
3469         (WebCore::DatabaseTracker::databaseChanged):
3470         (WebCore::DatabaseTracker::addOpenDatabase):
3471         (WebCore::DatabaseTracker::removeOpenDatabase):
3472         (WebCore::DatabaseTracker::getOpenDatabases):
3473         (WebCore::DatabaseTracker::deleteDatabaseFile):
3474         * storage/DatabaseTracker.h:
3475         * storage/OriginQuotaManager.cpp:
3476         (WebCore::OriginQuotaManager::markDatabase):
3477         * storage/OriginQuotaManager.h:
3478         * storage/chromium/DatabaseObserver.h:
3479         * storage/chromium/DatabaseTrackerChromium.cpp:
3480         (WebCore::DatabaseTracker::addOpenDatabase):
3481         (WebCore::TrackerRemoveOpenDatabaseTask::create):
3482         (WebCore::TrackerRemoveOpenDatabaseTask::TrackerRemoveOpenDatabaseTask):
3483         (WebCore::DatabaseTracker::removeOpenDatabase):
3484         (WebCore::DatabaseTracker::getOpenDatabases):
3485         (WebCore::DatabaseTracker::getMaxSizeForDatabase):
3486
3487 2010-06-14  Alexey Proskuryakov  <ap@apple.com>
3488
3489         Reviewed by Darin Adler.
3490
3491         https://bugs.webkit.org/show_bug.cgi?id=40529
3492         eventSender.keyDown("delete") incorrectly sends a backspace on some platforms
3493
3494         * platform/mac/KeyEventMac.mm: (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
3495         Use virtual key code to force correct character code for clarity. Also, reworded comment,
3496         since saying that "backspace needs to always be 8" misleadingly implied that it could
3497         "sometimes" be such without this code.
3498
3499 2010-06-14  Dimitri Glazkov  <dglazkov@chromium.org>
3500
3501         Reviewed by Darin Adler.
3502
3503         Refactor form submission code in HTMLFormElement to add clarity.
3504         https://bugs.webkit.org/show_bug.cgi?id=39430
3505
3506         Covered by existing tests in fast/forms/mailto.
3507
3508         * html/HTMLFormElement.cpp:
3509         (WebCore::appendMailtoPostFormDataToURL): Renamed from transferMailtoPostFormDataToUrl,
3510             removed clearing out of the FormData and moved it to a new place (next to the call site).
3511         (WebCore::HTMLFormElement::prepareFormData): Renamed from createFormData, moved the logic of
3512             prepareing FormData here, including the use of appendMailtoPostFormDataToURL.
3513         (WebCore::HTMLFormElement::submit): Consolidated multiple invocations of submitForm().
3514         * html/HTMLFormElement.h: Renamed createFormData to prepareFormData.
3515
3516 2010-06-14  Chris Fleizach  <cfleizach@apple.com>
3517
3518         Reviewed by Darin Adler.
3519
3520         AX: need ListItemRole and PresentationalRole
3521         https://bugs.webkit.org/show_bug.cgi?id=40133
3522
3523         * accessibility/AccessibilityObject.cpp:
3524         (WebCore::createARIARoleMap):
3525         * accessibility/AccessibilityObject.h:
3526         (WebCore::AccessibilityObject::isListItem):
3527         * accessibility/AccessibilityRenderObject.cpp:
3528         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
3529         (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
3530         * accessibility/mac/AccessibilityObjectWrapper.mm:
3531         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
3532
3533 2010-06-14  Anders Carlsson  <andersca@apple.com>
3534
3535         Reviewed by Sam Weinig.
3536
3537         Remove pluginIndex from MimeClassInfo
3538         https://bugs.webkit.org/show_bug.cgi?id=40588
3539
3540         * plugins/PluginData.h:
3541         * plugins/gtk/PluginDataGtk.cpp:
3542         (WebCore::PluginData::initPlugins):
3543         * plugins/mac/PluginDataMac.mm:
3544         (WebCore::PluginData::initPlugins):
3545         * plugins/qt/PluginDataQt.cpp:
3546         (WebCore::PluginData::initPlugins):
3547         * plugins/win/PluginDataWin.cpp:
3548         (WebCore::PluginData::initPlugins):
3549         * plugins/wx/PluginDataWx.cpp:
3550         (WebCore::PluginData::initPlugins):
3551
3552 2010-06-14  Kinuko Yasuda  <kinuko@chromium.org>
3553
3554         Reviewed by Jian Li.
3555
3556         Implement BlobBuilder internal class for BlobBuilder support as defined in FileWriter
3557         https://bugs.webkit.org/show_bug.cgi?id=36903
3558
3559         No new tests; they will be added when we add jsc bindings.
3560
3561         * CMakeLists.txt:
3562         * GNUmakefile.am:
3563         * WebCore.gypi:
3564         * WebCore.pro:
3565         * WebCore.vcproj/WebCore.vcproj:
3566         * WebCore.xcodeproj/project.pbxproj:
3567         * html/BlobBuilder.cpp: Added.
3568         * html/BlobBuilder.h: Added.
3569         (WebCore::BlobBuilder::create):
3570         * platform/BlobItem.cpp:
3571         (WebCore::StringBlobItem::convertToCString): Added EndingNative support.
3572         * platform/BlobItem.h: Added EndingNative line-ending type.
3573         (WebCore::):
3574
3575 2010-06-14  Anders Carlsson  <andersca@apple.com>
3576
3577         Reviewed by Darin Adler.
3578
3579         Stop using MimeClassInfo::pluginIndex
3580         https://bugs.webkit.org/show_bug.cgi?id=40582
3581
3582         Add a pluginIndicies vector to PluginData and use it instead of MimeClassInfo::pluginIndex.
3583
3584         * plugins/MimeType.cpp:
3585         (WebCore::MimeType::enabledPlugin):
3586         Get the plug-in index from the mimePluginIndices vector.
3587         
3588         * plugins/Plugin.cpp:
3589         (WebCore::Plugin::item):
3590         Compare the mime plugin index as well.
3591         
3592         * plugins/PluginData.cpp:
3593         (WebCore::PluginData::PluginData):
3594         Populate the m_mimePluginIndices vector.
3595
3596         (WebCore::PluginData::pluginNameForMimeType):
3597         Get the plug-in index from the m_mimePluginIndices vector.
3598
3599         * plugins/PluginData.h:
3600         (WebCore::operator==):
3601         Don't check for pluginIndex.
3602
3603         (WebCore::PluginData::mimePluginIndices):
3604         Add getter for m_mimePluginIndices.
3605
3606 2010-06-14  Sam Weinig  <sam@webkit.org>
3607
3608         Better build fix.
3609
3610         * bindings/js/JSBindingsAllInOne.cpp:
3611
3612 2010-06-14  Sam Weinig  <sam@webkit.org>
3613
3614         Another windows build fix.
3615
3616         * bindings/js/JSBindingsAllInOne.cpp:
3617
3618 2010-06-14  Sam Weinig  <sam@webkit.org>
3619
3620         Another build fix.
3621
3622         * bindings/js/JSDOMWindowCustom.cpp:
3623
3624 2010-06-14  Sam Weinig  <sam@webkit.org>
3625
3626         Add missing comma to fix GTK build.
3627
3628         * xml/XSLTProcessor.idl:
3629
3630 2010-06-14  Sam Weinig  <sam@webkit.org>
3631
3632         Reviewed by Alexey Proskuryakov.
3633
3634         Fix for https://bugs.webkit.org/show_bug.cgi?id=40581
3635         Auto-generate most of the JS constructors
3636
3637         - Auto-generates all the JS constructors that don't have custom
3638           names (eg, Not Image(), Audio() or Option())
3639         - Fixes two typos.
3640             (new XSLTConstructor()).toString() [object XSLTProcessorConsructor] -> [object XSLTProcessorConstructor])
3641             (new EventSource()).toString() [object EventSourceContructor] -> [object EventSourceConstructor])
3642
3643         * Android.jscbindings.mk:
3644         * CMakeLists.txt:
3645         * GNUmakefile.am:
3646         * WebCore.gypi:
3647         * WebCore.pro:
3648         * WebCore.vcproj/WebCore.vcproj:
3649         * WebCore.xcodeproj/project.pbxproj:
3650         * bindings/js/JSArrayBufferConstructor.cpp: Removed.
3651         * bindings/js/JSArrayBufferConstructor.h: Removed.
3652         * bindings/js/JSArrayBufferCustom.cpp: Copied from WebCore/bindings/js/JSArrayBufferConstructor.cpp.
3653         (WebCore::JSArrayBufferConstructor::constructJSArrayBuffer):
3654         * bindings/js/JSArrayBufferViewHelper.h:
3655         (WebCore::constructArrayBufferView):
3656         * bindings/js/JSBindingsAllInOne.cpp:
3657         * bindings/js/JSDOMWindowCustom.cpp:
3658         * bindings/js/JSEventSourceConstructor.cpp: Removed.
3659         * bindings/js/JSEventSourceConstructor.h: Removed.
3660         * bindings/js/JSEventSourceCustom.cpp: Copied from WebCore/bindings/js/JSEventSourceConstructor.cpp.
3661         (WebCore::JSEventSourceConstructor::constructJSEventSource):
3662         * bindings/js/JSFloat32ArrayConstructor.cpp: Removed.
3663         * bindings/js/JSFloat32ArrayConstructor.h: Removed.
3664         * bindings/js/JSFloat32ArrayCustom.cpp:
3665         (WebCore::JSFloat32ArrayConstructor::constructJSFloat32Array):
3666         * bindings/js/JSInt16ArrayConstructor.cpp: Removed.
3667         * bindings/js/JSInt16ArrayConstructor.h: Removed.
3668         * bindings/js/JSInt16ArrayCustom.cpp:
3669         (WebCore::JSInt16ArrayConstructor::constructJSInt16Array):
3670         * bindings/js/JSInt32ArrayConstructor.cpp: Removed.
3671         * bindings/js/JSInt32ArrayConstructor.h: Removed.
3672         * bindings/js/JSInt32ArrayCustom.cpp:
3673         (WebCore::JSInt32ArrayConstructor::constructJSInt32Array):
3674         * bindings/js/JSInt8ArrayConstructor.cpp: Removed.
3675         * bindings/js/JSInt8ArrayConstructor.h: Removed.
3676         * bindings/js/JSInt8ArrayCustom.cpp:
3677         (WebCore::JSInt8ArrayConstructor::constructJSInt8Array):
3678         * bindings/js/JSMessageChannelConstructor.cpp: Removed.
3679         * bindings/js/JSMessageChannelConstructor.h: Removed.
3680         * bindings/js/JSMessageChannelCustom.cpp:
3681         (WebCore::JSMessageChannelConstructor::constructJSMessageChannel):
3682         * bindings/js/JSSharedWorkerConstructor.cpp: Removed.
3683         * bindings/js/JSSharedWorkerConstructor.h: Removed.
3684         * bindings/js/JSSharedWorkerCustom.cpp:
3685         (WebCore::JSSharedWorkerConstructor::constructJSSharedWorker):
3686         * bindings/js/JSUint16ArrayConstructor.cpp: Removed.
3687         * bindings/js/JSUint16ArrayConstructor.h: Removed.
3688         * bindings/js/JSUint16ArrayCustom.cpp:
3689         (WebCore::JSUint16ArrayConstructor::constructJSUint16Array):
3690         * bindings/js/JSUint32ArrayConstructor.cpp: Removed.
3691         * bindings/js/JSUint32ArrayConstructor.h: Removed.
3692         * bindings/js/JSUint32ArrayCustom.cpp:
3693         (WebCore::JSUint32ArrayConstructor::constructJSUint32Array):
3694         * bindings/js/JSUint8ArrayConstructor.cpp: Removed.
3695         * bindings/js/JSUint8ArrayConstructor.h: Removed.
3696         * bindings/js/JSUint8ArrayCustom.cpp:
3697         (WebCore::JSUint8ArrayConstructor::constructJSUint8Array):
3698         * bindings/js/JSWebKitCSSMatrixConstructor.cpp: Removed.
3699         * bindings/js/JSWebKitCSSMatrixConstructor.h: Removed.
3700         * bindings/js/JSWebKitCSSMatrixCustom.cpp: Copied from WebCore/bindings/js/JSWebKitCSSMatrixConstructor.cpp.
3701         (WebCore::JSWebKitCSSMatrixConstructor::constructJSWebKitCSSMatrix):
3702         * bindings/js/JSWebKitPointConstructor.cpp: Removed.
3703         * bindings/js/JSWebKitPointConstructor.h: Removed.
3704         * bindings/js/JSWebKitPointCustom.cpp: Copied from WebCore/bindings/js/JSWebKitPointConstructor.cpp.
3705         (WebCore::JSWebKitPointConstructor::constructJSWebKitPoint):
3706         * bindings/js/JSWebSocketConstructor.cpp: Removed.
3707         * bindings/js/JSWebSocketConstructor.h: Removed.
3708         * bindings/js/JSWebSocketCustom.cpp:
3709         (WebCore::JSWebSocketConstructor::constructJSWebSocket):
3710         * bindings/js/JSWorkerConstructor.cpp: Removed.
3711         * bindings/js/JSWorkerConstructor.h: Removed.
3712         * bindings/js/JSWorkerContextCustom.cpp:
3713         * bindings/js/JSWorkerCustom.cpp:
3714         (WebCore::JSWorkerConstructor::constructJSWorker):
3715         * bindings/js/JSXSLTProcessorConstructor.cpp: Removed.
3716         * bindings/js/JSXSLTProcessorConstructor.h: Removed.
3717         * bindings/js/JSXSLTProcessorCustom.cpp:
3718         (WebCore::JSXSLTProcessorConstructor::constructJSXSLTProcessor):
3719         * bindings/scripts/CodeGeneratorJS.pm:
3720         * css/WebKitCSSMatrix.idl:
3721         * dom/MessageChannel.idl:
3722         * html/canvas/ArrayBuffer.idl:
3723         * html/canvas/Float32Array.idl:
3724         * html/canvas/Int16Array.idl:
3725         * html/canvas/Int32Array.idl:
3726         * html/canvas/Int8Array.idl:
3727         * html/canvas/Uint16Array.idl:
3728         * html/canvas/Uint32Array.idl:
3729         * html/canvas/Uint8Array.idl:
3730         * page/EventSource.idl:
3731         * page/WebKitPoint.idl:
3732         * websockets/WebSocket.idl:
3733         * workers/SharedWorker.idl:
3734         * workers/Worker.idl:
3735         * xml/XSLTProcessor.idl:
3736
3737 2010-05-16  Antonio Gomes  <tonikitoo@webkit.org>
3738
3739         Unreviewed naming fixes of local variables used in Spatial Navigation methods.
3740
3741         Summary:
3742             * "candidate" renamed to "node";
3743             * "currentFocusCandidate" renamed to "candidate"
3744             * "closestFocusCandidate" renamed to "closest"
3745
3746         That way naming is more consistent in the various Spatial Navigation methods.
3747
3748         * page/FocusController.cpp:
3749         (WebCore::FocusController::findFocusableNodeInDirection):
3750         (WebCore::FocusController::deepFindFocusableNodeInDirection):
3751
3752 2010-06-14  Antonio Gomes  <tonikitoo@webkit.org>
3753
3754         Reviewed by Simon Fraser and Kenneth Christiansen.
3755
3756         Spatial Navigation: make it work with focusable elements in overflow content
3757         https://bugs.webkit.org/show_bug.cgi?id=36463
3758
3759         This patch addresses the problem with Spatial Navigation. It currently does not
3760         properly traverse scrollable contents, including scrollable div's. For this to work,
3761         a new class member called scrollableEnclosingBox was introduced to FocusCandidate class which
3762         keeps track of the current scrollable box Node wrapping a FocusCandidate.
3763
3764         To make use of enclosingScrollableBox of FocusCandidate, the DOM traversal routine
3765         (FocusController::findNextFocusableInDirection) was changed as follows: when it
3766         encounters a scrollable Node, each focusable node which is 'inner' keeps track of
3767         the container reference. By the time a sibling of the scrollable Node is encountered,
3768         there is no need to track this reference any more and the traversal algorithm continues
3769         normally.
3770
3771         The common case is obviously that there is no scrollable container wrapping it.
3772
3773         updateFocusCandiditeIfCloser logic was also adapted to fit the need of the
3774         newly introduced enclosingScrollableBox class member, getting simpler and more
3775         easily maintainable.
3776
3777         Tests: fast/events/spatial-navigation/snav-div-scrollable-but-without-focusable-content.html
3778                fast/events/spatial-navigation/snav-clipped-overflow-content.html
3779
3780         * page/FocusController.cpp:
3781         (WebCore::updateFocusCandidateInSameContainer):
3782         (WebCore::updateFocusCandidateIfCloser):
3783         (WebCore::FocusController::findFocusableNodeInDirection):
3784         (WebCore::FocusController::deepFindFocusableNodeInDirection):
3785         * page/SpatialNavigation.cpp:
3786         (WebCore::isScrollableContainerNode):
3787         * page/SpatialNavigation.h:
3788         (WebCore::FocusCandidate::FocusCandidate):
3789         (WebCore::FocusCandidate::isInScrollableContainer):
3790
3791 2010-06-14  Jian Li  <jianli@chromium.org>
3792
3793         Unreviewed. Fix build break in GTK.
3794
3795         * bindings/scripts/CodeGeneratorGObject.pm:
3796         * bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
3797         * bindings/scripts/test/GObject/WebKitDOMTestCallbackPrivate.h:
3798         * bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
3799         * bindings/scripts/test/GObject/WebKitDOMTestInterfacePrivate.h:
3800         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
3801
3802 2010-06-14  Chris Fleizach  <cfleizach@apple.com>
3803
3804         Reviewed by Beth Dakin.
3805
3806         AX: AXUnknown objects are being returned
3807         https://bugs.webkit.org/show_bug.cgi?id=40574
3808
3809         Test: platform/mac/accessibility/no-unknown-objects-when-title-attribute-present.html
3810
3811         * accessibility/mac/AccessibilityObjectMac.mm:
3812         (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
3813
3814 2010-06-14  Jian Li  <jianli@chromium.org>
3815
3816         Reviewed by Darin Adler.
3817
3818         Fix code generators to better support Conditional attribute and add test
3819         coverage for it.
3820         https://bugs.webkit.org/show_bug.cgi?id=39512
3821
3822         * bindings/scripts/CodeGeneratorGObject.pm:
3823         * bindings/scripts/CodeGeneratorObjC.pm:
3824         * bindings/scripts/CodeGeneratorV8.pm:
3825         * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
3826         * bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
3827         * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
3828         * bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
3829         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
3830         (webkit_dom_test_obj_get_conditional_attr1):
3831         (webkit_dom_test_obj_set_conditional_attr1):
3832         (webkit_dom_test_obj_get_conditional_attr2):
3833         (webkit_dom_test_obj_set_conditional_attr2):
3834         (webkit_dom_test_obj_get_conditional_attr3):
3835         (webkit_dom_test_obj_set_conditional_attr3):
3836         (webkit_dom_test_obj_set_property):
3837         (webkit_dom_test_obj_get_property):
3838         (webkit_dom_test_obj_class_init):
3839         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
3840         * bindings/scripts/test/JS/JSTestInterface.cpp:
3841         * bindings/scripts/test/JS/JSTestInterface.h:
3842         * bindings/scripts/test/JS/JSTestObj.cpp:
3843         (WebCore::):
3844         (WebCore::jsTestObjConditionalAttr1):
3845         (WebCore::jsTestObjConditionalAttr2):
3846         (WebCore::jsTestObjConditionalAttr3):
3847         (WebCore::setJSTestObjConditionalAttr1):
3848         (WebCore::setJSTestObjConditionalAttr2):
3849         (WebCore::setJSTestObjConditionalAttr3):
3850         * bindings/scripts/test/JS/JSTestObj.h:
3851         * bindings/scripts/test/ObjC/DOMTestInterface.mm:
3852         * bindings/scripts/test/ObjC/DOMTestObj.h:
3853         * bindings/scripts/test/ObjC/DOMTestObj.mm:
3854         (-[DOMTestObj conditionalAttr1]):
3855         (-[DOMTestObj setConditionalAttr1:]):
3856         (-[DOMTestObj conditionalAttr2]):
3857         (-[DOMTestObj setConditionalAttr2:]):
3858         (-[DOMTestObj conditionalAttr3]):
3859         (-[DOMTestObj setConditionalAttr3:]):
3860         * bindings/scripts/test/TestInterface.idl:
3861         * bindings/scripts/test/TestObj.idl:
3862         * bindings/scripts/test/V8/V8TestInterface.cpp:
3863         * bindings/scripts/test/V8/V8TestInterface.h:
3864         * bindings/scripts/test/V8/V8TestObj.cpp:
3865         (WebCore::TestObjInternal::conditionalAttr1AttrGetter):
3866         (WebCore::TestObjInternal::conditionalAttr1AttrSetter):
3867         (WebCore::TestObjInternal::conditionalAttr2AttrGetter):
3868         (WebCore::TestObjInternal::conditionalAttr2AttrSetter):
3869         (WebCore::TestObjInternal::conditionalAttr3AttrGetter):
3870         (WebCore::TestObjInternal::conditionalAttr3AttrSetter):
3871         (WebCore::):
3872
3873 2010-06-14  Chang Shu  <chang.shu@nokia.com>
3874
3875         Reviewed by Kenneth Rohde Christiansen.
3876
3877         Change the type of ShadowSize from IntSize to FloatSize in GraphicsContext.
3878         Using IntSize loses precision and fails the test.
3879         Note: This code change fixes Qt port but Mac is still failing due to
3880         platform issue.
3881
3882         https://bugs.webkit.org/show_bug.cgi?id=40434
3883
3884         * html/canvas/CanvasRenderingContext2D.cpp:
3885         (WebCore::CanvasRenderingContext2D::applyShadow):
3886         * platform/graphics/GraphicsContext.cpp:
3887         (WebCore::GraphicsContext::setShadow):
3888         (WebCore::GraphicsContext::getShadow):
3889         * platform/graphics/GraphicsContext.h:
3890         * platform/graphics/GraphicsContextPrivate.h:
3891         * platform/graphics/cairo/FontCairo.cpp:
3892         (WebCore::Font::drawGlyphs):
3893         * platform/graphics/cairo/GraphicsContextCairo.cpp:
3894         (WebCore::GraphicsContext::calculateShadowBufferDimensions):
3895         (WebCore::drawPathShadow):
3896         (WebCore::drawBorderlessRectShadow):
3897         (WebCore::GraphicsContext::setPlatformShadow):
3898         * platform/graphics/cairo/ImageCairo.cpp:
3899         (WebCore::BitmapImage::draw):
3900         * platform/graphics/cg/GraphicsContextCG.cpp:
3901         (WebCore::GraphicsContext::setPlatformShadow):
3902         * platform/graphics/chromium/FontChromiumWin.cpp:
3903         (WebCore::TransparencyAwareFontPainter::TransparencyAwareGlyphPainter::drawGlyphs):
3904         (WebCore::Font::drawComplexText):
3905         * platform/graphics/gtk/FontGtk.cpp:
3906         (WebCore::Font::drawComplexText):
3907         * platform/graphics/haiku/GraphicsContextHaiku.cpp:
3908         (WebCore::GraphicsContext::setPlatformShadow):
3909         * platform/graphics/mac/FontMac.mm:
3910         (WebCore::Font::drawGlyphs):
3911         * platform/graphics/openvg/GraphicsContextOpenVG.cpp:
3912         (WebCore::GraphicsContext::setPlatformShadow):
3913         * platform/graphics/qt/FontQt.cpp:
3914         (WebCore::drawTextCommon):
3915         * platform/graphics/qt/GraphicsContextQt.cpp:
3916         (WebCore::GraphicsContext::drawRect):
3917         (WebCore::GraphicsContext::drawLine):
3918         (WebCore::GraphicsContext::strokeArc):
3919         (WebCore::GraphicsContext::drawConvexPolygon):
3920         (WebCore::drawFilledShadowPath):
3921         (WebCore::GraphicsContext::strokePath):
3922         (WebCore::drawBorderlessRectShadow):
3923         (WebCore::GraphicsContext::setPlatformShadow):
3924         * platform/graphics/qt/ImageQt.cpp:
3925         (WebCore::BitmapImage::draw):
3926         * platform/graphics/skia/GraphicsContextSkia.cpp:
3927         (WebCore::GraphicsContext::setPlatformShadow):
3928         * platform/graphics/skia/SkiaFontWin.cpp:
3929         (WebCore::windowsCanHandleDrawTextShadow):
3930         * platform/graphics/win/FontCGWin.cpp:
3931         (WebCore::drawGDIGlyphs):
3932         (WebCore::Font::drawGlyphs):
3933         * platform/graphics/wince/GraphicsContextWince.cpp:
3934         (WebCore::GraphicsContext::fillRoundedRect):
3935         (WebCore::GraphicsContext::setPlatformShadow):
3936         (WebCore::GraphicsContext::drawText):
3937         * platform/graphics/wx/GraphicsContextWx.cpp:
3938         (WebCore::GraphicsContext::setPlatformShadow):
3939
3940 2010-06-14  Dan Bernstein  <mitz@apple.com>
3941
3942         Reviewed by Simon Fraser.
3943
3944         <rdar://problem/7752961> Unevenly distributed space in justified text
3945         https://bugs.webkit.org/show_bug.cgi?id=36105
3946
3947         Test: fast/text/justify-padding-distribution.html
3948
3949         * platform/graphics/WidthIterator.cpp:
3950         (WebCore::WidthIterator::WidthIterator): Initialize m_padPerSpace to the quotient of the total
3951         padding and the number of spaces rather than truncating it.
3952         (WebCore::WidthIterator::advance): Subtract m_padPerSpace from m_padding and add the difference
3953         between its old and new values, when rounded, to the advance.
3954         * platform/graphics/mac/ComplexTextController.cpp:
3955         (WebCore::ComplexTextController::ComplexTextController):
3956         (WebCore::ComplexTextController::adjustGlyphsAndAdvances):
3957         * platform/graphics/win/UniscribeController.cpp:
3958         (WebCore::UniscribeController::UniscribeController):
3959         (WebCore::UniscribeController::shapeAndPlaceItem):
3960         * platform/graphics/win/UniscribeController.h:
3961
3962 2010-06-14  Andreas Kling  <andreas.kling@nokia.com>
3963
3964         Reviewed by Tor Arne Vestbø.
3965
3966         [Qt] Stack overflow when converting navigator object to QVariant
3967         https://bugs.webkit.org/show_bug.cgi?id=40572
3968
3969         Protect against infinite recursion in JSValue->QVariant conversion.
3970         This fixes a crash when trying to convert MimeType objects (they
3971         recurse infinitely and on-the-fly via the enabledPlugin property.)
3972
3973         * bridge/qt/qt_runtime.cpp:
3974         (JSC::Bindings::convertValueToQVariant):
3975
3976 2010-06-14  Yong Li  <yoli@rim.com>
3977
3978         Test cases created by: Robin Cao <robin.cao@torchmobile.com.cn>
3979
3980         Reviewed by Darin Adler.
3981
3982         https://bugs.webkit.org/show_bug.cgi?id=38910
3983
3984         Suspend Document::m_executeScriptSoonTimer objects when the page is deferred.
3985         There's no reason why we suspend all active DOM timers on the page but not suspend
3986         this one. Document::m_executeScriptSoonTimer can run JS and schedule more DOM Timers.
3987
3988         It can only be tested manually.
3989         * manual-tests/load-deferrer-script-element.html: Added.
3990         * manual-tests/resources/load-deferrer-script-element.js: Added.
3991
3992         * dom/Document.cpp:
3993         (WebCore::Document::executeScriptSoon):
3994         (WebCore::Document::suspendExecuteScriptSoonTimer): Added.
3995         (WebCore::Document::resumeExecuteScriptSoonTimer): Added.
3996         * dom/Document.h:
3997         * page/PageGroupLoadDeferrer.cpp:
3998         (WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer):
3999         (WebCore::PageGroupLoadDeferrer::~PageGroupLoadDeferrer):
4000
4001 2010-06-13  Yael Aharon  <yael.aharon@nokia.com>
4002
4003         Reviewed by Kenneth Rohde Christiansen.
4004
4005         [Qt] Platform plugin support for Notifications UI
4006         https://bugs.webkit.org/show_bug.cgi?id=40005
4007
4008         To avoid race condition when GC is run during shutdown,
4009         disconnect the Notification from the NotificationPresenter
4010         when the presenter deletes itself.
4011         This cannot be tested by a layout test, the race condition happens only
4012         when GC is run during shutdown. It can be tested manually by loading
4013         manually any notification test and closing the browser.
4014
4015         * notifications/Notification.cpp:
4016         (WebCore::Notification::~Notification):
4017         * notifications/Notification.h:
4018         (WebCore::Notification::detachPresenter):
4019
4020 2010-06-08  Marcus Bulach  <bulach@chromium.org>
4021
4022         Reviewed by Jeremy Orlow.
4023
4024         Adds IndexedDB's KeyRange.
4025         https://bugs.webkit.org/show_bug.cgi?id=40250
4026
4027         Test: storage/indexeddb/idb-keyrange.html
4028
4029         * Android.derived.jscbindings.mk:
4030         * Android.derived.v8bindings.mk:
4031         * Android.mk:
4032         * CMakeLists.txt:
4033         * DerivedSources.cpp:
4034         * DerivedSources.make:
4035         * GNUmakefile.am:
4036         * WebCore.gypi:
4037         * WebCore.pri:
4038         * WebCore.pro:
4039         * WebCore.vcproj/WebCore.vcproj:
4040         * WebCore.xcodeproj/project.pbxproj:
4041         * storage/IDBKeyRange.cpp: Added.
4042         (WebCore::IDBKeyRange::IDBKeyRange):
4043         * storage/IDBKeyRange.h: Added.
4044         (WebCore::IDBKeyRange::):
4045         (WebCore::IDBKeyRange::create):
4046         (WebCore::IDBKeyRange::~IDBKeyRange):
4047         (WebCore::IDBKeyRange::left):
4048         (WebCore::IDBKeyRange::right):
4049         (WebCore::IDBKeyRange::flags):
4050         * storage/IDBKeyRange.idl: Added.
4051         * storage/IndexedDatabaseRequest.cpp:
4052         (WebCore::IndexedDatabaseRequest::makeSingleKeyRange):
4053         (WebCore::IndexedDatabaseRequest::makeLeftBoundKeyRange):
4054         (WebCore::IndexedDatabaseRequest::makeRightBoundKeyRange):
4055         (WebCore::IndexedDatabaseRequest::makeBoundKeyRange):
4056         * storage/IndexedDatabaseRequest.h:
4057         * storage/IndexedDatabaseRequest.idl:
4058
4059 2010-06-14  Jeremy Orlow  <jorlow@chromium.org>
4060
4061         And another.
4062
4063         * storage/IndexedDatabaseRequest.h:
4064
4065 2010-06-14  Jeremy Orlow  <jorlow@chromium.org>
4066
4067         More build fixes.
4068
4069         * storage/IndexedDatabaseRequest.h:
4070
4071 2010-06-14  Mahesh Kulkarni  <mahesh.kulkarni@nokia.com>
4072
4073         Reviewed by Laszlo Gombos.
4074
4075         [Qt] navigator.geolocation support for Qt port
4076         https://bugs.webkit.org/show_bug.cgi?id=39724
4077
4078         Implemetion for Qt port of navigator.gelocation. Using qtmobility location service.
4079
4080         * WebCore.pri:
4081         * WebCore.pro:
4082         * platform/qt/GeolocationServiceQt.cpp: Added.
4083         (WebCore::GeolocationServiceQt::create):
4084         (WebCore::GeolocationServiceQt::GeolocationServiceQt):
4085         (WebCore::GeolocationServiceQt::~GeolocationServiceQt):
4086         (WebCore::GeolocationServiceQt::positionUpdated):
4087         (WebCore::GeolocationServiceQt::startUpdating):
4088         (WebCore::GeolocationServiceQt::stopUpdating):
4089         * platform/qt/GeolocationServiceQt.h: Added.
4090         (WebCore::GeolocationServiceQt::lastPosition):
4091         (WebCore::GeolocationServiceQt::lastError):
4092
4093 2010-06-14  Jeremy Orlow  <jorlow@chromium.org>
4094
4095         2 more build fixes.
4096
4097         * storage/IDBDatabaseImpl.h:
4098         * storage/IndexedDatabaseRequest.h:
4099
4100 2010-06-14  Jeremy Orlow  <jorlow@chromium.org>
4101
4102         Unreviewed build fix for my last.
4103
4104         * workers/WorkerScriptLoaderClient.h:
4105
4106 2010-06-14  Jeremy Orlow  <jorlow@chromium.org>
4107
4108         Reviewed by Darin Fisher.
4109
4110         [V8] Clean up SerializedScriptValue
4111         https://bugs.webkit.org/show_bug.cgi?id=40482
4112
4113         SerializedScriptValue doesn't follow WebKit's style guidelines very well
4114         and needlessly inlines quite a bit within the .h file. This change cleans
4115         things up. No funcitonal changes.
4116
4117         No change in behavior.
4118
4119         * bindings/v8/SerializedScriptValue.cpp:
4120         (WebCore::SerializedScriptValue::deserializeAndSetProperty):
4121         (WebCore::SerializedScriptValue::create):
4122         (WebCore::SerializedScriptValue::createFromWire):
4123         (WebCore::SerializedScriptValue::release):
4124         (WebCore::SerializedScriptValue::SerializedScriptValue):
4125         * bindings/v8/SerializedScriptValue.h:
4126
4127 2010-06-14  Ilya Tikhonovsky  <loislo@chromium.org>
4128
4129         Reviewed by Pavel Feldman.
4130
4131         WebInspector: On the way to Remote Debugging we want to transfer dom/timeline/etc
4132         data from inspected page to WebInspector as JSON string via http. The native
4133         serialization to JSON string is supported by InspectorValue's classes. This patch
4134         has the implementation of sendMessageToFrontend function. WebKit version of it still
4135         uses ScriptFunctionCall and will be switched to another transport a little bit later.
4136         https://bugs.webkit.org/show_bug.cgi?id=40134
4137
4138         * inspector/InspectorClient.h: