1 2010-06-18 Leandro Pereira <leandro@profusion.mobi>
3 [EFL] Unreviewed build fix.
5 * CMakeLists.txt: Add inspector/ScriptBreakpoint.cpp.
7 2010-06-18 Andy Estes <aestes@apple.com>
9 Rubber-stamped by Sam Weinig.
11 Update copyright header.
13 * html/HTMLLinkElement.h:
15 2010-06-17 Andy Estes <aestes@apple.com>
17 Reviewed by Dan Bernstein.
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
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.
27 Test: fast/dom/beforeload/remove-link-in-beforeload-listener.html
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
43 2010-06-18 Chris Fleizach <cfleizach@apple.com>
45 Unreviewed. Windows build fix.
47 AX: presentational role needs to be inherited by required elements
48 https://bugs.webkit.org/show_bug.cgi?id=40132
50 * accessibility/AccessibilityRenderObject.cpp:
51 (WebCore::AccessibilityRenderObject::inheritsPresentationalRole):
53 2010-06-18 Chris Fleizach <cfleizach@apple.com>
55 Reviewed by David Kilzer.
57 AX: presentational role needs to be inherited by required elements
58 https://bugs.webkit.org/show_bug.cgi?id=40132
60 Test: platform/mac/accessibility/inherited-presentational-lists.html
62 * accessibility/AccessibilityRenderObject.cpp:
63 (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
64 (WebCore::AccessibilityRenderObject::inheritsPresentationalRole):
65 * accessibility/AccessibilityRenderObject.h:
66 (WebCore::AccessibilityRenderObject::node):
68 2010-06-18 Darin Adler <darin@apple.com>
70 Fix GTK build after reflection change.
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.
78 * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
79 Updated to expect correct results.
81 2010-06-18 Yury Semikhatsky <yurys@chromium.org>
83 Unreviewed: Qt build fix.
85 * inspector/InspectorController.cpp:
87 2010-06-18 Justin Garcia <justin.garcia@apple.com>
89 Reviewed by Ojan Vafai.
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
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.
99 (WebCore::Editor::appliedEditing):
100 (WebCore::Editor::unappliedEditing):
101 (WebCore::Editor::reappliedEditing):
102 (WebCore::Editor::changeSelectionAfterCommand):
105 2010-06-18 Gyuyoung Kim <gyuyoung.kim@samsung.com>
107 Unreviewed build fix.
109 [EFL] Build break on Debug build.
110 https://bugs.webkit.org/show_bug.cgi?id=40810
112 * CMakeLists.txt: Add CSSPreloadScanner.cpp
114 2010-06-18 Pavel Podivilov <podivilov@chromium.org>
116 Reviewed by Yury Semikhatsky.
118 Web Inspector: persist breakpoints in inspector settings.
119 https://bugs.webkit.org/show_bug.cgi?id=14190
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):
153 2010-06-18 Darin Adler <darin@apple.com>
155 Reviewed by Sam Weinig.
157 Implement additional DOM attribute reflection for bindings
158 https://bugs.webkit.org/show_bug.cgi?id=39936
160 - Added support for [Reflect] for long, unsigned long, and boolean
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
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.
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
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.
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.
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.
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.
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.
215 * bindings/scripts/test/TestObj.idl: Added some test cases for
216 content attribute reflection and for exceptions in string-typed
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.
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.
236 * html/HTMLMediaElement.cpp:
237 (WebCore::HTMLMediaElement::isURLAttribute): Added. Returns true for
239 * html/HTMLMediaElement.h: Added isURLAttribute.
241 * html/HTMLVideoElement.cpp:
242 (WebCore::HTMLVideoElement::isURLAttribute): Changed to call
243 HTMLMediaElement::isURLAttribute before checking for posterAttr.
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.
304 2010-06-17 Dumitru Daniliuc <dumi@chromium.org>
306 Reviewed by Dimitri Glazkov.
308 Remove some unnecessary checks that cause compiler warnings.
309 https://bugs.webkit.org/show_bug.cgi?id=40772
311 * bindings/v8/custom/V8SQLResultSetRowListCustom.cpp:
312 (WebCore::V8SQLResultSetRowList::itemCallback):
313 * bindings/v8/npruntime.cpp:
315 2010-06-18 Mikhail Naganov <mnaganov@chromium.org>
317 Reviewed by Yury Semikhatsky.
319 Implement 'takeHeapSnapshot' in InspectorController.
321 https://bugs.webkit.org/show_bug.cgi?id=40834
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:
336 2010-06-18 Dan Bernstein <mitz@apple.com>
338 Reviewed by Anders Carlsson.
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
343 Test: fast/dom/HTMLScriptElement/isURLAttribute.html
345 * html/HTMLScriptElement.cpp:
346 (WebCore::HTMLScriptElement::isURLAttribute): Check for the 'src' attribute.
348 2010-06-18 Sheriff Bot <webkit.review.bot@gmail.com>
350 Unreviewed, rolling out r61405.
351 http://trac.webkit.org/changeset/61405
352 https://bugs.webkit.org/show_bug.cgi?id=40838
354 broke chromium mac compile (Requested by tonyg-cr1 on
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:
364 2010-06-18 Zhenyao Mo <zmo@google.com>
366 Reviewed by Dimitri Glazkov.
368 Fix WebGLRenderingContext helper functions find{Texture/Renderbuffer/Buffer}
369 https://bugs.webkit.org/show_bug.cgi?id=40176
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.
380 2010-06-18 Tony Gentilcore <tonyg@chromium.org>
382 Reviewed by David Levin.
384 Persist V8's ScriptData to the memory cache.
385 https://bugs.webkit.org/show_bug.cgi?id=38661
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
391 Chromium's morejs benchmark showed a ~7% improvement when this was
392 originally submitted (before it had to be rolled back).
394 Test: fast/js/parser-high-byte-character.html
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:
405 2010-06-18 Anton Muhin <antonm@chromium.org>
407 Reviewed by Dimitri Glazkov.
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.
416 2010-06-17 Pavel Feldman <pfeldman@chromium.org>
418 Reviewed by Yury Semikhatsky.
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.
424 https://bugs.webkit.org/show_bug.cgi?id=40799
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):
460 2010-06-18 Nikolas Zimmermann <nzimmermann@rim.com>
462 Reviewed by Dirk Schulze.
464 Modernize SVG Text code, following the HTML design
465 https://bugs.webkit.org/show_bug.cgi?id=40663
467 SVG Text does not support subpixel positioning
468 https://bugs.webkit.org/show_bug.cgi?id=12172
470 RenderSVGText can't do partial repaints
471 https://bugs.webkit.org/show_bug.cgi?id=15386
473 HTML and SVG need to share more text painting code
474 https://bugs.webkit.org/show_bug.cgi?id=15644
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.
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.
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.
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.
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
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.
643 2010-06-18 Lucas De Marchi <lucas.demarchi@profusion.mobi>
645 Reviewed by David Levin.
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
652 No new tests. Compilation fix.
654 * rendering/SVGRenderSupport.cpp:
655 (WebCore::SVGRenderBase::prepareToRenderSVGContent):
657 2010-06-18 Adam Barth <abarth@webkit.org>
659 Reviewed by Darin Adler.
661 noAccess url schemes block access to inline stylesheets
662 https://bugs.webkit.org/show_bug.cgi?id=32309
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.
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.
673 Test: http/tests/security/data-url-inline.css.html
675 * css/CSSStyleSheet.cpp:
676 (WebCore::CSSStyleSheet::cssRules):
678 2010-06-18 Adam Barth <abarth@webkit.org>
680 Reviewed by Darin Adler.
682 Remove unneeded custom code for WebSocket.send
683 https://bugs.webkit.org/show_bug.cgi?id=38180
685 We don't appear to require a custom binding here. The old function was
688 1) It required all of its arguments.
690 2) If the toString of its argument threw, it would catch the exception
691 and re-throw a different exception.
693 I've kept the first behavior but changed the second (and documented it
696 Test: websocket/tests/send-throw.html
698 * bindings/js/JSWebSocketCustom.cpp:
699 * bindings/v8/custom/V8WebSocketCustom.cpp:
700 * websockets/WebSocket.idl:
702 2010-06-15 Dumitru Daniliuc <dumi@chromium.org>
704 Reviewed by Adam Barth.
706 Move isAvailable()/setIsAvailable() from Database/DatabaseSync to AbstractDatabase.
707 https://bugs.webkit.org/show_bug.cgi?id=39041
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:
728 2010-06-18 Adam Barth <abarth@webkit.org>
730 Rubber-stamped by Eric Seidel.
732 Fix the namespace indent for HTML5Lexer. This patch changes
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):
747 2010-06-18 Fumitoshi Ukai <ukai@chromium.org>
749 Unreviewed test breakage fix.
751 WebSocket: resume should not process buffer if already processing.
752 https://bugs.webkit.org/show_bug.cgi?id=39340
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.
757 * websockets/ThreadableWebSocketChannelClientWrapper.h:
758 (WebCore::ThreadableWebSocketChannelClientWrapper::resume):
759 (WebCore::ThreadableWebSocketChannelClientWrapper::ThreadableWebSocketChannelClientWrapper):
761 2010-06-17 Sheriff Bot <webkit.review.bot@gmail.com>
763 Unreviewed, rolling out r61379.
764 http://trac.webkit.org/changeset/61379
765 https://bugs.webkit.org/show_bug.cgi?id=40813
767 Broke multiple tests on all platforms (Requested by tkent on
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:
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):
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:
928 2010-06-17 Rob Buis <rwlbuis@gmail.com>
930 Reviewed by Dave Hyatt.
932 CSS3 "Property is declared twice in rule" test fails
933 https://bugs.webkit.org/show_bug.cgi?id=36282
935 Filter out duplicate properties in style declaration.
937 Test: fast/css/duplicate-property-in-rule.html
939 * css/CSSMutableStyleDeclaration.cpp: Filter out duplicate properties
940 (WebCore::CSSMutableStyleDeclaration::CSSMutableStyleDeclaration):
942 (WebCore::CSSParser::parseValue): Discard negative padding values
943 * css/CSSStyleSelector.cpp: Remove negative padding check
944 (WebCore::CSSStyleSelector::applyProperty):
946 2010-06-17 Darin Adler <darin@apple.com>
948 Reviewed by Sam Weinig.
950 Implement additional DOM attribute reflection for bindings
951 https://bugs.webkit.org/show_bug.cgi?id=39936
953 - Added support for [Reflect] for long, unsigned long, and boolean
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
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.
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
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.
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.
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.
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.
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.
1008 * bindings/scripts/test/TestObj.idl: Added some test cases for
1009 content attribute reflection and for exceptions in string-typed
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.
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.
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.
1088 2010-06-17 MORITA Hajime <morrita@google.com>
1090 Unreviewd, fixed a build break.
1092 * css/CSSSelector.cpp:
1093 (WebCore::CSSSelector::pseudoId):
1095 2010-06-16 MORITA Hajime <morrita@google.com>
1097 Reviewed by Kent Tamura.
1099 <meter> should allow styling for each gauge-level and component
1100 https://bugs.webkit.org/show_bug.cgi?id=40280
1102 - Introduced following new pseudo classes for <meter> element.
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
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.
1123 Tests: fast/dom/HTMLMeterElement/meter-styles-changing-pseudo.html
1124 fast/dom/HTMLMeterElement/meter-styles.html
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::):
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:
1197 2010-06-17 Fumitoshi Ukai <ukai@chromium.org>
1199 Reviewed by Alexey Proskuryakov.
1201 WebSocket: resume should not process buffer if already processing.
1202 https://bugs.webkit.org/show_bug.cgi?id=39340
1204 Test: websocket/tests/alert-in-event-handler.html
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
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:
1225 2010-06-17 Eric Seidel <eric@webkit.org>
1227 Reviewed by Adam Barth.
1229 REGRESSION(HTML5 parser): editing/selection/leave-requested-block.html can fail or crash
1230 https://bugs.webkit.org/show_bug.cgi?id=40764
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
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.
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.
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.
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
1283 2010-06-17 Tony Gentilcore <tonyg@chromium.org>
1285 Reviewed by Eric Seidel.
1287 Prevent HTML5PreloadScanner from loading resources in <noscript> tags.
1288 https://bugs.webkit.org/show_bug.cgi?id=40779
1290 No new tests. Will create a layout test in a subsequent patch.
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:
1300 2010-06-17 Adam Barth <abarth@webkit.org>
1302 Reviewed by Eric Seidel.
1304 HTML5PreloadScanner parses <script> in DataState
1305 https://bugs.webkit.org/show_bug.cgi?id=40804
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.
1311 * html/HTML5PreloadScanner.cpp:
1312 (WebCore::HTML5PreloadScanner::processToken):
1314 2010-06-17 Adam Barth <abarth@webkit.org>
1316 Reviewed by Eric Seidel.
1318 Add CSS scanning to HTML5PreloadScanner
1319 https://bugs.webkit.org/show_bug.cgi?id=40802
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
1325 Tests: fast/preloader/image.html
1326 fast/preloader/link.html
1327 fast/preloader/script.html
1328 fast/preloader/style.html
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:
1351 2010-06-17 Abhishek Arya <inferno@chromium.org>
1353 Reviewed by David Kilzer.
1355 (Landed by Dirk Pranke).
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.
1361 Test: editing/pasteboard/drag-drop-iframe-refresh-crash.html
1363 Note that you need to run the test manually 20-30 times for the crash
1366 * editing/SelectionController.cpp:
1367 (WebCore::SelectionController::setSelection):
1369 2010-06-17 Benjamin Poulain <benjamin.poulain@nokia.com>
1371 Reviewed by Simon Hausmann.
1373 [Qt] Get rid of the the unused imageSize of ImageDecoderQt::internalHandleCurrentImage()
1374 https://bugs.webkit.org/show_bug.cgi?id=40620
1376 Remove an unused variable.
1378 * platform/graphics/qt/ImageDecoderQt.cpp:
1379 (WebCore::ImageDecoderQt::internalHandleCurrentImage):
1381 2010-06-17 Jeremy Moskovich <jeremy@chromium.org>
1383 Reviewed by Darin Fisher.
1385 [Chromium API] Implement WebSandboxSupport on OS X and add stubs to allow
1386 OOP loading of fonts.
1388 https://bugs.webkit.org/show_bug.cgi?id=40544
1390 * platform/chromium/ChromiumBridge.h: Add prototype for loadFont()
1392 2010-06-17 Nicolas Weber <thakis@chromium.org>
1394 Reviewed by Eric Seidel.
1396 Fix various warnings that are reported when building with clang
1397 https://bugs.webkit.org/show_bug.cgi?id=40503
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:
1407 * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
1409 * bindings/v8/custom/V8HTMLOptionElementConstructor.cpp:
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:
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):
1427 2010-06-17 Kwang Yul Seo <skyul@company100.net>
1429 Reviewed by Pavel Feldman.
1431 Add ENABLE(INSPECTOR) guard for m_sessionSettings
1432 https://bugs.webkit.org/show_bug.cgi?id=40611
1436 * inspector/InspectorController.h:
1438 2010-06-17 Eric Seidel <eric@webkit.org>
1440 Reviewed by Adam Barth.
1442 Add FIXME to explain HTMLDocumentParser's forceSynchronous bool
1443 https://bugs.webkit.org/show_bug.cgi?id=40609
1445 No functional change, just adding comment.
1448 (WebCore::Document::write):
1450 2010-06-13 Robert Hogan <robert@webkit.org>
1452 Reviewed by Kenneth Rohde Christiansen.
1454 WebCore EventHandler needs to take account of onLoad events
1455 fired before layout() complete
1457 https://bugs.webkit.org/show_bug.cgi?id=40102
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.
1464 When scrolling a frameview in eventhandler ensure the layout is complete.
1466 * page/EventHandler.cpp:
1467 (WebCore::EventHandler::scrollRecursively):
1469 2010-06-16 Dumitru Daniliuc <dumi@chromium.org>
1471 Reviewed by Dimitri Glazkov.
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
1476 Test: storage/sql-error-codes.html
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):
1494 2010-06-17 Kinuko Yasuda <kinuko@chromium.org>
1496 Reviewed by Jian Li.
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.
1503 Tests will be added when we add BlobBuilder jsc bindings.
1505 * platform/BlobItem.cpp:
1506 (WebCore::StringBlobItem::convertToCString):
1507 (WebCore::DataRangeBlobItem::DataRangeBlobItem):
1509 2010-06-17 Dimitri Glazkov <dglazkov@chromium.org>
1511 Unreviewed, rolling out r61340.
1512 http://trac.webkit.org/changeset/61340
1513 https://bugs.webkit.org/show_bug.cgi?id=36282
1515 Broke several editing tests.
1517 * css/CSSMutableStyleDeclaration.cpp:
1518 (WebCore::CSSMutableStyleDeclaration::CSSMutableStyleDeclaration):
1519 * css/CSSParser.cpp:
1520 (WebCore::CSSParser::parseValue):
1521 * css/CSSStyleSelector.cpp:
1522 (WebCore::CSSStyleSelector::applyProperty):
1524 2010-06-17 Jian Li <jianli@chromium.org>
1526 Reviewed by David Levin.
1528 Add optional contentType parameter to Blob.slice per latest File API spec.
1529 https://bugs.webkit.org/show_bug.cgi?id=40647
1531 Tested by http/tests/local/resources/send-sliced-dragged-file.html.
1534 (WebCore::Blob::slice):
1538 2010-06-17 Jesus Sanchez-Palencia <jesus@webkit.org>, Kenneth Rohde Christiansen <kenneth@webkit.org>
1540 Reviewed by Simon Hausmann.
1542 [Qt] QtWebKit does not support viewport meta tag
1543 https://bugs.webkit.org/show_bug.cgi?id=39902
1545 Add windowRect() to page client.
1547 * platform/qt/QWebPageClient.h:
1549 2010-06-17 Stephen White <senorblanco@chromium.org>
1551 Reviewed by David Levin.
1553 Fix for slow multiple animated resize issue.
1554 https://bugs.webkit.org/show_bug.cgi?id=38233
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.
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)
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
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.
1604 2010-06-17 Rob Buis <rwlbuis@gmail.com>
1606 Reviewed by Dave Hyatt.
1608 CSS3 "Property is declared twice in rule" test fails
1609 https://bugs.webkit.org/show_bug.cgi?id=36282
1611 Filter out duplicate properties in style declaration.
1613 Test: fast/css/duplicate-property-in-rule.html
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):
1622 2010-06-17 Kenneth Russell <kbr@google.com>
1624 Reviewed by Dimitri Glazkov.
1626 Clean up error conditions for Typed Arrays
1627 https://bugs.webkit.org/show_bug.cgi?id=40755
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.
1667 2010-06-17 Shu Chang <chang.shu@nokia.com>
1669 Reviewed by Kenneth Rohde Christiansen.
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.
1676 https://bugs.webkit.org/show_bug.cgi?id=40780
1680 2010-06-17 Kenneth Russell <kbr@google.com>
1682 Reviewed by Oliver Hunt.
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
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.
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:
1701 2010-06-17 Darin Fisher <darin@chromium.org>
1703 Reviewed by Brady Eidson.
1705 If Page::goToItem is passed a HistoryItem that is the current item,
1706 then the page should be loaded again.
1708 https://bugs.webkit.org/show_bug.cgi?id=40660
1710 * loader/HistoryController.cpp:
1711 (WebCore::HistoryController::recursiveGoToItem): Add a check to
1712 recursiveGoToItem that matches the one in FrameLoader::loadItem.
1714 2010-06-17 Kwang Yul Seo <skyul@company100.net>
1716 Reviewed by Kent Tamura.
1718 [BREWMP] Build fix for DragDataBrew
1719 https://bugs.webkit.org/show_bug.cgi?id=40610
1721 http://trac.webkit.org/changeset/60957 was not applied to DragDataBrew.cpp.
1722 Add FilenameConversionPolicy argument to DragData::containsURL and DragData::asURL.
1724 * platform/brew/DragDataBrew.cpp:
1725 (WebCore::DragData::containsURL):
1726 (WebCore::DragData::asURL):
1728 2010-06-17 Zhenyao Mo <zmo@google.com>
1730 Reviewed by David Levin.
1732 Rename internalformat to internalFormat
1733 https://bugs.webkit.org/show_bug.cgi?id=40149
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):
1757 2010-06-17 Zhenyao Mo <zmo@google.com>
1759 Reviewed by David Levin.
1761 Remove input parameter validation for "level" upper limit in *tex* functions
1762 https://bugs.webkit.org/show_bug.cgi?id=40603
1764 * html/canvas/WebGLRenderingContext.cpp:
1765 (WebCore::WebGLRenderingContext::validateTexFuncParameters): Don't check for "level" upper limit.
1767 2010-06-17 Lucas De Marchi <lucas.demarchi@profusion.mobi>
1769 Reviewed by Eric Seidel.
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
1779 No new functionalities, so no new tests.
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
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.
1805 2010-06-17 Alex Milowski <alex@milowski.com>
1807 Reviewed by Darin Adler.
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
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):
1822 2010-06-17 Darin Adler <darin@apple.com>
1824 Reviewed by Sam Weinig.
1826 Use adoptRef and create functions in more code paths
1827 https://bugs.webkit.org/show_bug.cgi?id=40760
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.
1833 * WebCore.base.exp: Updated export now that Frame::create is not an
1836 * css/CSSInitialValue.h:
1837 (WebCore::CSSInitialValue::createExplicit): Use create.
1838 (WebCore::CSSInitialValue::createImplicit): Ditto.
1839 (WebCore::CSSInitialValue::create): Added.
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
1851 * css/CSSPrimitiveValue.h: Declare the new functions above.
1853 * css/CSSStyleSelector.cpp:
1854 (WebCore::loadFullDefaultStyle): Deref simpleDefaultStyleSheet instead of
1855 explicitly deleting it.
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.
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.
1871 * platform/text/BidiContext.cpp:
1872 (WebCore::BidiContext::createUncached): Added.
1873 (WebCore::BidiContext::create): Call createUncached instead of callling
1875 * platform/text/BidiContext.h: Declare createUncached.
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.
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.
1891 (WebCore::SVGPaint::defaultFill): Use create instead of new.
1892 (WebCore::SVGPaint::defaultStroke): Ditto.
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.
1898 2010-06-17 Lucas De Marchi <lucas.demarchi@profusion.mobi>
1900 Reviewed by Gustavo Noronha.
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
1906 https://bugs.webkit.org/show_bug.cgi?id=40628
1908 No new tests since it's just compilation fixes.
1912 2010-06-17 Darin Adler <darin@apple.com>
1914 Reviewed by Sam Weinig.
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
1919 Test: fast/dom/boolean-attribute-reflection.html
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.
1928 (WebCore::Element::setBooleanAttribute): Use emptyAtom to set the
1929 attribute to the empty string.
1931 * html/HTMLFormControlElement.cpp:
1932 (WebCore::HTMLFormControlElement::setAutofocus): Use the empty string,
1934 (WebCore::HTMLFormControlElement::setRequired): Use the empty string,
1937 2010-06-17 Pavel Feldman <pfeldman@chromium.org>
1939 Unreviewed: chromium tests fix. Added InspectorBackend delegates for new inspector methods.
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):
1947 2010-06-17 Mark Brand <mabrand@mabrand.nl>
1949 Reviewed by Simon Hausmann.
1951 [Qt] use "win32-g++*" scope to match all MinGW makespecs
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.
1960 2010-06-16 Pavel Feldman <pfeldman@chromium.org>
1962 Reviewed by Joe Pecoraro.
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.
1972 https://bugs.webkit.org/show_bug.cgi?id=40733
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):
2006 * inspector/front-end/InjectedScript.js:
2007 (injectedScriptConstructor):
2008 * inspector/front-end/InjectedScriptAccess.js:
2010 2010-06-17 John Gregg <johnnyg@google.com>
2012 Reviewed by David Levin.
2014 Move the call to the notification presenter that a Notification is being
2015 destroyed from the destructor (not safe) to the ActiveDOMObject::contextDestroyed
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
2021 No new tests; code paths are well-covered by existing tests.
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:
2031 2010-06-17 Csaba Osztrogonác <ossy@webkit.org>
2033 Unreviewed rollout r61311, because it made 2 tests fail on Qt bot.
2035 [Qt] NPP_SetWindow seems to not be called when TestNetscapePlugin is moved
2036 https://bugs.webkit.org/show_bug.cgi?id=36702
2038 * plugins/qt/PluginViewQt.cpp:
2039 (WebCore::PluginView::updatePluginWidget):
2041 2010-05-28 Viatcheslav Ostapenko <ostapenko.viatcheslav@nokia.com>
2043 Reviewed by Simon Hausmann, Antti Koivisto
2045 Make repaint throttling parameters runtime configurable.
2046 https://bugs.webkit.org/show_bug.cgi?id=38401
2048 REPAINT_THROTTLING now chooses default values for throttling parameters.
2049 Should be removed when applications start using runtime configuration.
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):
2060 2010-06-17 Robert Hogan <robert@webkit.org>
2062 Reviewed by Kenneth Rohde Christiansen.
2064 [Qt] NPP_SetWindow seems to not be called when TestNetscapePlugin is moved
2066 https://bugs.webkit.org/show_bug.cgi?id=36702
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
2072 Unskips plugins/reentrant-update-widget-positions.html
2074 * plugins/qt/PluginViewQt.cpp:
2075 (WebCore::PluginView::updatePluginWidget):
2077 2010-06-17 Simon Hausmann <simon.hausmann@nokia.com>
2079 Reviewed by Kenneth Christiansen.
2081 [Qt] Avoid unnecessary calls to save() and restore() when drawing images
2083 Avoid calling the expensive save() and restore() on the GraphicsContext just
2084 for changing the composition mode. Instead save and restore it manually
2087 Change fac227f609e544f8f55aca8447b4328d6534407a in Qt makes sure that the
2088 call to QPainter::setCompositionMode doesn't do anything if the mode hasn't
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):
2097 2010-06-16 Dawit Alemayehu <adawit@kde.org>
2099 Reviewed by Simon Hausmann.
2101 [Qt] QtWebKit crashes while initializing flash plugin 10.1.53.64.
2102 https://bugs.webkit.org/show_bug.cgi?id=40567
2104 Avoid preventable crashes by ensuring gtk_init() is called in the
2105 flash viewer plugins before calling NP_Initialize.
2107 * plugins/qt/PluginPackageQt.cpp:
2108 (WebCore::PluginPackage::load):
2110 2010-06-16 Tony Gentilcore <tonyg@chromium.org>
2112 Reviewed by David Levin.
2114 Guarantee that references are held for CachedScripts in HTMLDocumentParser.
2115 https://bugs.webkit.org/show_bug.cgi?id=40177
2117 No new tests because no new functionality.
2119 * html/HTMLDocumentParser.cpp:
2120 (WebCore::HTMLDocumentParser::reset):
2121 (WebCore::HTMLDocumentParser::executeExternalScriptsIfReady):
2123 2010-06-16 Qi Zhang <qi.2.zhang@nokia.com>
2125 Reviewed by Laszlo Gombos.
2127 [Qt] Repeat pattern should start from origin
2128 https://bugs.webkit.org/show_bug.cgi?id=39225
2130 Patterns must be painted so that the top left of the first image
2131 is anchored at the origin of the coordinate space.
2133 * platform/graphics/qt/GraphicsContextQt.cpp:
2134 (WebCore::drawRepeatPattern):
2135 (WebCore::GraphicsContext::fillRect):
2137 2010-06-16 Jarkko Sakkinen <jarkko.j.sakkinen@gmail.com>
2139 Reviewed by Simon Hausmann.
2141 [Qt] WebGL viewport does not show up on N900
2142 https://bugs.webkit.org/show_bug.cgi?id=38528
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
2149 * platform/graphics/qt/GraphicsContext3DQt.cpp:
2150 (WebCore::GraphicsContext3D::beginPaint):
2151 (WebCore::GraphicsContext3D::paint):
2152 (WebCore::GraphicsContext3D::shaderSource):
2154 2010-06-16 Antonio Gomes <tonikitoo@webkit.org>
2156 Reviewed by Simon Fraser.
2158 Spatial Navigation: refactor scrollInDirection to work with scrollable content
2159 https://bugs.webkit.org/show_bug.cgi?id=39195
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.
2166 Test: fast/events/spatial-navigation/snav-only-clipped-overflow-content.html
2168 * page/FocusController.cpp:
2169 (WebCore::FocusController::advanceFocusDirectionally):
2170 * page/SpatialNavigation.cpp:
2171 (WebCore::scrollInDirection):
2172 * page/SpatialNavigation.h:
2174 2010-06-16 Brady Eidson <beidson@apple.com>
2176 Reviewed by Eric Carlson
2178 <rdar://problem/7249553> and https://bugs.webkit.org/show_bug.cgi?id=40749
2179 ResourceLoader::willCacheResponse() needs to null-check Frame::Settings()
2181 No new tests. (Discovered via crash reports, no reproducible cases noted)
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.
2188 2010-06-16 Darin Adler <darin@apple.com>
2190 Try to fix the MathML build.
2192 * mathml/MathMLMathElement.h: Added missing return type.
2194 2010-06-16 Darin Adler <darin@apple.com>
2196 Reviewed by David Levin.
2198 Deploy adoptRef in more places, including all HTML and MathML elements
2199 https://bugs.webkit.org/show_bug.cgi?id=39941
2202 (WebCore::Element::dispatchAttrRemovalEvent): Use create instead of new
2203 in commented-out code.
2204 (WebCore::Element::dispatchAttrAdditionEvent): Ditto.
2206 * dom/Node.h: Removed now-unused CreateElementZeroRefCount and
2207 CreateHTMLElementZeroRefCount.
2209 * editing/InsertListCommand.cpp:
2210 (WebCore::InsertListCommand::insertList): Use create instead of new, fixing
2213 * editing/ModifySelectionListLevel.cpp:
2214 (WebCore::IncreaseSelectionListLevelCommand::increaseSelectionListLevel):
2215 Removed "WithType" from function name. Use create instead of new, fixing a
2217 (WebCore::DecreaseSelectionListLevelCommand::decreaseSelectionListLevel): Use
2218 create instead of new, fixing a storage leak.
2220 * storage/IndexedDatabaseImpl.cpp:
2221 (WebCore::IndexedDatabaseImpl::create): Use adoptRef, fixing a storage leak.
2223 * editing/ModifySelectionListLevel.h: Added create functions.
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.
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.
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.
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.
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.
2258 * mathml/MathMLInlineContainerElement.h: Made createRenderrer override
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.
2268 * mathml/MathMLMathElement.h: Made constructor private and added a
2269 private override of createRenderer.
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.
2278 * mathml/MathMLTextElement.h: Made the constructor and createRenderer
2281 * rendering/RenderFileUploadControl.cpp:
2282 (WebCore::RenderFileUploadControl::RenderFileUploadControl):
2283 Removed an unneeded initializer.
2285 * rendering/RenderProgress.cpp: Tweaked includes.
2287 * rendering/ShadowElement.cpp: Added a "using namespace" directive.
2288 * rendering/ShadowElement.h: Tweaked formatting. Made more functions
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):
2444 2010-06-16 Adam Barth <abarth@webkit.org>
2446 Reviewed by Eric Seidel.
2448 HTML5 parser crash when setTimeout document.write after slow script
2449 https://bugs.webkit.org/show_bug.cgi?id=40726
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.
2456 Test: http/tests/misc/write-while-waiting.html
2458 * WebCore.xcodeproj/project.pbxproj:
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):
2483 2010-06-16 Martin Robinson <mrobinson@igalia.com>
2485 Reviewed by Gustavo Noronha Silva.
2487 [GTK] ClipboardGtk::setURL does not match the behavior of other platforms
2488 https://bugs.webkit.org/show_bug.cgi?id=40640
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.
2495 Tests for this issue will be activated when dropping support has been
2496 added to the GTK+ EventSender.
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.
2508 2010-06-16 Adam Barth <abarth@webkit.org>
2510 Reviewed by Eric Seidel.
2512 Hit assertion in WebCore::HTML5Token::appendToSystemIdentifier
2513 https://bugs.webkit.org/show_bug.cgi?id=40729
2515 This was a copy/paste error. Yay for ASSERTs.
2517 * html/HTML5Lexer.cpp:
2518 (WebCore::HTML5Lexer::nextToken):
2520 2010-06-16 Stuart Morgan <stuartmorgan@chromium.org>
2522 Reviewed by Anders Carlsson.
2524 Bring npapi.h more in line with upstream npapi-headers version:
2525 - Remove obsolete XP_MAC sections.
2526 - Remove Metrowerks defines.
2528 - Add Maemo defines.
2529 - Add new version of the custom Carbon event definitions.
2530 - Sync platform define style/details
2532 https://bugs.webkit.org/show_bug.cgi?id=38666
2536 2010-06-16 Simon Fraser <simon.fraser@apple.com>
2538 Reviewed by Sam Weinig.
2540 Allow transitions and animations of clip: rect
2541 https://bugs.webkit.org/show_bug.cgi?id=38130
2543 Make the CSS clip property animatable.
2545 Test: transitions/clip-transition.html
2547 * page/animation/AnimationBase.cpp:
2548 (WebCore::blendFunc): New blend function for LengthBox
2549 (WebCore::AnimationBase::ensurePropertyMap): Create a PropertyWrapper for LengthBoxes.
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.
2556 2010-06-16 Simon Fraser <simon.fraser@apple.com>
2558 Reviewed by Dan Bernstein.
2560 Fix clipping via CSS clip: with composited descendants
2561 https://bugs.webkit.org/show_bug.cgi?id=40579
2563 Consult the 'clip' style, as well as overflow, when creating clipping
2566 Tests: compositing/geometry/clip.html
2567 compositing/overflow/clip-descendents.html
2569 * rendering/RenderLayerBacking.cpp:
2570 (WebCore::clipBox): Utility function that returns the union of the clip and overflow
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.
2579 2010-06-16 Simon Fraser <simon.fraser@apple.com>
2581 Reviewed by Darin Adler.
2583 REGRESSION: Undocked inspector toolbar is white
2584 https://bugs.webkit.org/show_bug.cgi?id=40644
2586 Make the html element 100% height so that we don't erase the background to white, after r61215.
2588 * inspector/front-end/inspector.css:
2591 2010-06-16 Brian Weinstein <bweinstein@apple.com>
2593 Reviewed by Darin Adler.
2595 User scripts injected on start are not run on image documents.
2596 https://bugs.webkit.org/show_bug.cgi?id=40722
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
2603 * loader/ImageDocument.cpp:
2604 (WebCore::ImageDocument::createDocumentStructure): Call FrameLoader::dispatchDocumentElementAvailable
2605 after creating our document element.
2607 2010-06-16 Brady Eidson <beidson@apple.com>
2609 Reviewed by NOBODY (Build fix for Mac)
2611 * WebCore.xcodeproj/project.pbxproj: Make paths relative to the project root.
2613 2010-06-16 Chris Marrin <cmarrin@apple.com>
2615 Reviewed by Eric Carlson.
2617 https://bugs.webkit.org/show_bug.cgi?id=40643
2619 Second of three steps - rename Canvas3DLayer to WebGLLayer
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.
2629 2010-06-16 Chris Marrin <cmarrin@apple.com>
2631 Reviewed by Simon Fraser.
2633 https://bugs.webkit.org/show_bug.cgi?id=40643
2635 Rename GraphicsContext3DMac.cpp so it can interact with CALayer
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
2641 2010-06-16 Nikolas Zimmermann <nzimmermann@rim.com>
2643 Reviewed by Dirk Schulze.
2645 Add new files, needed in SVG Text rewrite
2646 https://bugs.webkit.org/show_bug.cgi?id=40676
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.
2651 Doesn't affect any code for now, it should just reduce the review amount.
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.
2709 2010-06-16 Nikolas Zimmermann <nzimmermann@rim.com>
2711 Reviewed by Dirk Schulze.
2713 Provide floating-point support for text selection framework
2714 https://bugs.webkit.org/show_bug.cgi?id=40665
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.
2722 Add a glyphScale parameter to TextRun, that will be used to support text selection
2723 in lengthAdjust/textLength scenarios in SVG text, soon.
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.
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):
2778 (WebCore::Font::selectionRectForTextUsingSVGFont):
2779 (WebCore::Font::offsetForPositionForTextUsingSVGFont):
2781 2010-06-16 Anton Muhin <antonm@chromium.org>
2783 Reviewed by Nate Chapin.
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.
2792 * bindings/v8/V8Binding.cpp:
2793 (WebCore::getStringCache):
2794 (WebCore::v8ExternalStringSlow):
2795 * bindings/v8/V8Binding.h:
2796 (WebCore::v8ExternalString):
2798 2010-06-16 Antonio Gomes <tonikitoo@webkit.org>
2800 Reviewed by Kenneth Christiansen.
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
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".
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>.
2814 Test: fast/events/spatial-navigation/snav-iframe-recursive-offset-parent.html
2816 * page/SpatialNavigation.cpp:
2817 (WebCore::renderRectRelativeToRootDocument):
2819 2010-06-16 Dan Bernstein <mitz@apple.com>
2821 Try to fix the Tiger build
2823 * platform/graphics/mac/SimpleFontDataMac.mm:
2824 (WebCore::SimpleFontData::platformBoundsForGlyph):
2826 2010-06-16 Dan Bernstein <mitz@apple.com>
2828 Try to fix the Tiger build
2830 * platform/graphics/mac/SimpleFontDataMac.mm:
2831 (WebCore::SimpleFontData::platformBoundsForGlyph):
2833 2010-06-16 Dan Bernstein <mitz@apple.com>
2835 Reviewed by Alexey Proskuryakov.
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
2840 Test: platform/mac/fast/text/x-height.html
2842 The result of platformBoundsForGlyph() is in flipped coordinates, whereas the result of
2843 -[NSFont boundingRectForGlyph:] was not. r60247 failed to account for this.
2845 * platform/graphics/mac/SimpleFontDataMac.mm:
2846 (WebCore::SimpleFontData::platformInit): Measure the height of the x glyph above the baseline
2848 (WebCore::SimpleFontData::platformBoundsForGlyph): Return a rect in flipped coordinates on Tiger
2851 2010-06-16 Adam Barth <abarth@webkit.org>
2853 Reviewed by Eric Seidel.
2855 Don't crash when a document ends with an entity
2856 https://bugs.webkit.org/show_bug.cgi?id=40658
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
2862 * html/HTML5Lexer.cpp:
2864 2010-06-15 Adam Barth <abarth@webkit.org>
2866 Reviewed by Eric Seidel.
2869 https://bugs.webkit.org/show_bug.cgi?id=40650
2871 * page/Settings.cpp:
2872 (WebCore::Settings::Settings):
2874 2010-06-15 Mark Rowe <mrowe@apple.com>
2876 Rubber-stamped by David Harrison.
2878 sqlite3_prepare16_v2 is not documented as always setting "tail" during error cases.
2879 Explicitly initialize it to null, just to be safe.
2881 * platform/sql/SQLiteStatement.cpp:
2882 (WebCore::SQLiteStatement::prepare):
2884 2010-06-15 Mark Rowe <mrowe@apple.com>
2886 Reviewed by Brady Eidson.
2888 <rdar://problem/8091103> URLs not added to history when initial load happens via back/forward navigation
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.
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.
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::):
2908 2010-06-15 Kinuko Yasuda <kinuko@chromium.org>
2910 Reviewed by David Levin.
2912 Fix compilation errors in BlobBuilder with FILE_WRITER enabled
2913 https://bugs.webkit.org/show_bug.cgi?id=40606
2915 No functionality change so no new tests.
2917 * html/BlobBuilder.cpp:
2918 * html/BlobBuilder.h:
2920 2010-06-15 Jian Li <jianli@chromium.org>
2922 Reviewed by David Levin.
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
2930 2010-06-15 Darin Adler <darin@apple.com>
2932 Reviewed by Adam Barth.
2934 Move functions out of Frame class that were marked "move to Chrome"
2935 https://bugs.webkit.org/show_bug.cgi?id=39636
2937 Refactoring that does not require new tests.
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.
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
2951 (WebCore::DOMWindow::blur): Moved the code from Frame::unfocusWindow
2953 (WebCore::DOMWindow::close): Moved the code from Frame::scheduleClose
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.
2960 * page/DOMWindow.h: Added m_status and m_defaultStatus members to
2961 store the status messages being set by the DOM.
2963 * page/Frame.cpp: Removed all the functions that were marked
2964 "to be moved into Chrome".
2965 * page/Frame.h: Ditto.
2967 2010-06-15 Simon Fraser <simon.fraser@apple.com>
2969 Fix crashing tests; need to check for null documentElement().
2971 * rendering/RenderView.cpp:
2972 (WebCore::RenderView::paintBoxDecorations):
2974 2010-06-15 Simon Fraser <simon.fraser@apple.com>
2976 Reviewed by Dave Hyatt.
2978 Garbage shown outside HTML if HTML is absolutely positioned
2979 https://bugs.webkit.org/show_bug.cgi?id=36163
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.
2986 Test: fast/repaint/positioned-document-element.html
2988 * rendering/RenderView.cpp:
2989 (WebCore::RenderView::paintBoxDecorations):
2991 2010-06-15 Simon Fraser <simon.fraser@apple.com>
2993 Reviewed by Dan Bernstein.
2995 Safari 5 does not clear background with transformed html element
2996 https://bugs.webkit.org/show_bug.cgi?id=40498
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.
3002 Test: compositing/repaint/composited-document-element.html
3004 * rendering/RenderView.cpp:
3005 (WebCore::isComposited):
3006 (WebCore::rendererObscuresBackground):
3008 2010-06-15 Xan Lopez <xlopez@igalia.com>
3010 Try to fix GTK+ build.
3012 * platform/gtk/GtkVersioning.h:
3014 2010-06-15 Darin Fisher <darin@chromium.org>
3016 Reviewed by Brady Eidson.
3018 Introduce HistoryItem::itemSequenceNumber and use it to identify
3019 HistoryItems that are clones of one another.
3021 Changes HistoryController::recursiveGoToItem to use itemSequenceNumber
3022 equality instead of isTargetItem as the pre-requisite for not calling
3023 FrameLoader::loadItem.
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.
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
3037 Removes the now unused HistoryController::urlsMatchItem.
3039 https://bugs.webkit.org/show_bug.cgi?id=40451
3041 Test: fast/history/history-back-within-subframe.html
3042 http/tests/navigation/history-back-across-form-submission-to-fragment.html
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:
3059 2010-06-15 Xan Lopez <xlopez@igalia.com>
3061 Reviewed by Gustavo Noronha.
3063 [GTK] Does not compile with -DGSEAL_ENABLE
3064 https://bugs.webkit.org/show_bug.cgi?id=37851
3066 Fix compilation with GSEAL_ENABLE.
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):
3086 (gtk_xtbin_set_position):
3087 (gtk_xtbin_unrealize):
3089 2010-06-15 Xan Lopez <xlopez@igalia.com>
3091 Unreviewed build fix.
3093 Fix the build when WebSockets are disabled.
3095 * bindings/js/JSWorkerContextCustom.cpp:
3097 2010-06-15 Simon Fraser <simon.fraser@apple.com>
3099 Reviewed by Dan Bernstein.
3101 YouTube thumbnail borders vanish during transition
3102 https://bugs.webkit.org/show_bug.cgi?id=40551
3104 Turn off the direct image optimization if the image has a clip style, so that is is
3105 correctly rendered with the clip.
3107 Test: compositing/images/clip-on-directly-composited-image.html
3109 * rendering/RenderLayerBacking.cpp:
3110 (WebCore::RenderLayerBacking::isDirectlyCompositedImage):
3112 2010-06-15 Yury Semikhatsky <yurys@chromium.org>
3114 Reviewed by Pavel Feldman.
3116 [v8] Web Inspector: make ui tests pass when ScriptDebugServer is used
3117 https://bugs.webkit.org/show_bug.cgi?id=40623
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.
3125 2010-06-15 Adam Roben <aroben@apple.com>
3127 Make WebCore's and JavaScriptCore's DerivedSources available for debugging in production builds
3129 Fixes <http://webkit.org/b/40626> <rdar://problem/8094205>.
3131 Reviewed by Sam Weinig.
3133 * WebCore.vcproj/WebCore.make: Copy the contents of WebCore's
3134 DerivedSources directory to AppleInternal/Sources/WebCore.
3136 2010-06-15 Zhenyao Mo <zmo@google.com>
3138 Reviewed by Dimitri Glazkov.
3140 Bring framebuffer functions to GLES2 conformance
3141 https://bugs.webkit.org/show_bug.cgi?id=40175
3143 Test: fast/canvas/webgl/framebuffer-test.html
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.
3153 2010-06-15 Patrick Gansterer <paroga@paroga.com>
3155 Reviewed by David Levin.
3157 Buildfix for ResourceHandleWin after r24202 and r55542.
3158 https://bugs.webkit.org/show_bug.cgi?id=32963
3160 * platform/network/win/ResourceHandleWin.cpp:
3161 (WebCore::ResourceHandle::onHandleCreated):
3162 (WebCore::ResourceHandle::onRequestComplete):
3163 (WebCore::transferJobStatusCallback):
3164 (WebCore::ResourceHandle::start):
3166 2010-06-12 Pavel Feldman <pfeldman@chromium.org>
3168 Reviewed by Joe Pecoraro.
3170 Web Inspector: Should not expose window.console._inspectorCommandLineAPI to the web.
3172 https://bugs.webkit.org/show_bug.cgi?id=40500
3174 * inspector/front-end/InjectedScript.js:
3175 (injectedScriptConstructor):
3176 (injectedScriptConstructor.):
3178 2010-06-15 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
3180 Reviewed by Simon Hausmann.
3182 [Qt] The qt_webkit_version.pri file gets overwritten on install
3183 https://bugs.webkit.org/show_bug.cgi?id=40487
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.
3191 2010-06-15 Tony Chang <tony@chromium.org>
3193 Reviewed by Ojan Vafai.
3195 resolve urls in text/html clipboard data
3196 https://bugs.webkit.org/show_bug.cgi?id=40044
3198 Allow text/html data copied from a page to contain full URLs when
3199 dragging or copy/pasting.
3201 Tests: editing/pasteboard/copy-resolves-urls.html
3202 http/tests/misc/copy-resolves-urls.html
3205 * editing/markup.cpp:
3206 (WebCore::appendStartMarkup):
3207 (WebCore::getStartMarkup):
3208 (WebCore::MarkupAccumulator::appendMarkup):
3209 (WebCore::createMarkup):
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):
3229 2010-06-14 Chris Fleizach <cfleizach@apple.com>
3231 No review. GTK build fix.
3233 AX: need ListItemRole and PresentationalRole
3234 https://bugs.webkit.org/show_bug.cgi?id=40133
3236 Mostly speculative fix to make GTK unit tests work.
3238 * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
3240 (webkit_accessible_get_role):
3242 2010-06-14 Eric Carlson <eric.carlson@apple.com>
3244 Reviewed by Dan Bernstein.
3246 <rdar://problem/8090895> Update http streaming MIME types
3248 * platform/MIMETypeRegistry.cpp:
3249 (WebCore::TypeExtensionPair::): Add http streaming MIME synonyms.
3251 2010-06-14 Eric Carlson <eric.carlson@apple.com>
3253 Reviewed by Oliver Hunt.
3255 audio/x-mp3 MIME type not recognized
3256 <rdar://problem/7875393>
3257 https://bugs.webkit.org/show_bug.cgi?id=40594
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.
3263 Test: media/media-can-play-mp3.html
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.
3277 2010-06-14 Mark Rowe <mrowe@apple.com>
3279 Reviewed by Brady Eidson.
3281 <rdar://problem/8071866> REGRESSION: Crash on launch on Tiger and Leopard with network home folder
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.
3287 2010-06-14 Anders Carlsson <andersca@apple.com>
3291 * plugins/mac/PluginDataMac.mm:
3293 2010-06-14 Anders Carlsson <andersca@apple.com>
3295 Reviewed by Darin Adler.
3297 Use an array for extensions in MimeClassInfo
3298 https://bugs.webkit.org/show_bug.cgi?id=40602
3300 Get rid of MimeClassInfo::suffixes and replace it with an array of extensions.
3302 * plugins/MimeType.cpp:
3303 (WebCore::MimeType::suffixes):
3304 Create a string of joined extensions.
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):
3322 2010-06-14 Adam Barth <abarth@webkit.org>
3326 Add an include to try to fix Chromium build.
3328 * html/HTML5DocumentParser.cpp:
3330 2010-06-14 Eric Seidel <eric@webkit.org>
3332 Reviewed by Adam Barth.
3334 Safari beach-balls loading large pages with HTML5 parser
3335 https://bugs.webkit.org/show_bug.cgi?id=40596
3337 Implement parser yielding, similar to how the old
3338 HTMLDocumentParser yields.
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.
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.
3384 2010-06-14 Adam Barth <abarth@webkit.org>
3386 Reviewed by Eric Seidel.
3388 Add a preload scanner for the HTML5 parser
3389 https://bugs.webkit.org/show_bug.cgi?id=40557
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.
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
3414 (WebCore::HTML5PreloadScanner::scanningBody):
3415 * html/HTML5PreloadScanner.h: Copied from WebCore/html/PreloadScanner.h.
3417 2010-06-14 Adam Barth <abarth@webkit.org>
3419 Reviewed by Eric Seidel.
3421 Constify some HTML5Token methods
3422 https://bugs.webkit.org/show_bug.cgi?id=40592
3424 I keep wanting these methods to be const. Eric wanted this in a
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
3441 (WebCore::HTML5TreeBuilder::passTokenToLegacyParser):
3442 * html/HTML5TreeBuilder.h:
3444 2010-06-14 Dumitru Daniliuc <dumi@chromium.org>
3446 Unreviewed, build fix.
3448 * WebCore.xcodeproj/project.pbxproj:
3450 2010-06-14 Dimitri Glazkov <dglazkov@chromium.org>
3452 Unreviewed, build fix.
3454 Remove accidental specifying of the class name twice.
3456 * html/HTMLFormElement.cpp:
3457 (WebCore::HTMLFormElement::prepareFormData): Removed my ghastly typo.
3459 2010-06-14 Dumitru Daniliuc <dumi@chromium.org>
3461 Reviewed by Adam Barth.
3463 Get DatabaseTracker ready for sync DBs.
3464 https://bugs.webkit.org/show_bug.cgi?id=39041
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):
3493 2010-06-14 Alexey Proskuryakov <ap@apple.com>
3495 Reviewed by Darin Adler.
3497 https://bugs.webkit.org/show_bug.cgi?id=40529
3498 eventSender.keyDown("delete") incorrectly sends a backspace on some platforms
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.
3505 2010-06-14 Dimitri Glazkov <dglazkov@chromium.org>
3507 Reviewed by Darin Adler.
3509 Refactor form submission code in HTMLFormElement to add clarity.
3510 https://bugs.webkit.org/show_bug.cgi?id=39430