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