WebCore:
[WebKit-https.git] / WebCore / ChangeLog
1 2009-07-15  Jian Li  <jianli@chromium.org>
2
3         Reviewed by David Levin.
4
5         Bug 25151 - workers that fail to load scripts not firing error event.
6         https://bugs.webkit.org/show_bug.cgi?id=25151
7
8         This fixes the problem that an error event is not fired when the worker
9         script fails to load. Some reasons this may occur are an invalid URL for
10         the worker script or a cross-origin redirect.
11
12         We also moves the code to complete the URL and check its origin from
13         Worker constructor to WorkerScriptLoader loading functions in order to
14         move the exception throwing logic out of the scope of Worker constructor.
15         Due to this change, we also remove the output ExceptionCode parameter
16         in the worker constructor. Corresponding JS/V8 binding codes have been
17         updated to reflect this change.
18
19         * bindings/js/JSWorkerConstructor.cpp:
20         (WebCore::constructWorker):
21         * bindings/v8/custom/V8WorkerCustom.cpp:
22         (WebCore::CALLBACK_FUNC_DECL):
23         * workers/Worker.cpp:
24         (WebCore::Worker::Worker):
25         (WebCore::Worker::notifyFinished):
26         * workers/Worker.h:
27         (WebCore::Worker::create):
28         * workers/WorkerContext.cpp:
29         (WebCore::WorkerContext::importScripts):
30         * workers/WorkerScriptLoader.cpp:
31         (WebCore::toCrossOriginRedirectPolicy):
32         (WebCore::WorkerScriptLoader::loadSynchronously):
33         (WebCore::WorkerScriptLoader::loadAsynchronously):
34         (WebCore::notifyLoadErrorTask):
35         (WebCore::WorkerScriptLoader::createResourceRequest):
36         (WebCore::WorkerScriptLoader::didFail):
37         (WebCore::WorkerScriptLoader::didFailRedirectCheck):
38         (WebCore::WorkerScriptLoader::didReceiveAuthenticationCancellation):
39         (WebCore::WorkerScriptLoader::notifyError):
40         * workers/WorkerScriptLoader.h:
41         (WebCore::):
42         (WebCore::WorkerScriptLoader::url):
43
44 2009-07-15  Dan Bernstein  <mitz@apple.com>
45
46         Reviewed by Dave Hyatt.
47
48         text-shadow is not drawn for text with transparent colour
49         https://bugs.webkit.org/show_bug.cgi?id=21374
50
51         Test: fast/text/shadow-translucent-fill.html
52
53         * rendering/InlineTextBox.cpp:
54         (WebCore::paintTextWithShadows): If the text fill color is not opaque,
55         paint all shadows separately from the text, by casting them from
56         clipped-out opaque text.
57
58 2009-07-15  Adam Treat  <adam.treat@torchmobile.com>
59
60         Fix the Qt build.
61
62         * html/HTMLAreaElement.cpp:
63
64 2009-07-15  Jeremy Orlow  <jorlow@chromium.org>
65
66         Reviewed by Darin Fisher.
67
68         Cleanup DOM Storage dependencies.
69         https://bugs.webkit.org/show_bug.cgi?id=27180
70
71         DOM Storage had several unnecessary (and probably unintended)
72         dependencies.  This patch replaces many includes of header files with
73         forward declaration of classes, making some destructors explicit, and
74         taking some factories out of the header files.
75
76         This will allow things like StorageAreaSync to take a StorageAreaImpl*
77         (as it should) rather than a StorageArea* which previously weren't
78         possible because the dependencies were such a tangled mess.
79
80         * storage/LocalStorageTask.cpp:
81         (WebCore::LocalStorageTask::~LocalStorageTask):
82         * storage/LocalStorageTask.h:
83         * storage/Storage.cpp:
84         (WebCore::Storage::~Storage):
85         * storage/Storage.h:
86         * storage/StorageArea.cpp:
87         * storage/StorageArea.h:
88         * storage/StorageAreaImpl.cpp:
89         * storage/StorageAreaImpl.h:
90         * storage/StorageAreaSync.cpp:
91         (WebCore::StorageAreaSync::~StorageAreaSync):
92         * storage/StorageAreaSync.h:
93         * storage/StorageEvent.cpp:
94         (WebCore::StorageEvent::create):
95         (WebCore::StorageEvent::StorageEvent):
96         * storage/StorageEvent.h:
97         * storage/StorageNamespace.h:
98         * storage/StorageNamespaceImpl.cpp:
99         * storage/StorageNamespaceImpl.h:
100         * storage/StorageSyncManager.cpp:
101         (WebCore::StorageSyncManager::~StorageSyncManager):
102         * storage/StorageSyncManager.h:
103
104 2009-07-15  Chris Marrin  <cmarrin@apple.com>
105
106         Reviewed by Simon Fraser.
107
108         Incorrect animation when trying to duplicate effect of transform-origin
109         https://bugs.webkit.org/show_bug.cgi?id=27310
110
111         The bug is that matrix animation is being used when animating
112         a list of transform functions that match in the from and to states.
113         This sometimes works. But because of the way CA does matrix animation
114         function lists like the one shown in the testcase animate incorrectly.
115
116         This fixes the bug by always doing component animation
117         as long as the function lists match. This allows CA
118         to animate the components and then recompose the result
119         into the correct matrix.
120
121         Test: animations/transform-origin-vs-functions.html
122
123         * platform/graphics/mac/GraphicsLayerCA.mm:
124         (WebCore::GraphicsLayerCA::animateTransform):
125
126 2009-07-15  Albert J. Wong  <ajwong@chromium.org>
127
128         Reviewed by David Levin.
129
130         Upstream the V8NPObject and NPV8Object build changes for WebCore.gypi.
131
132         Add upstreamed V8 bindings files into WebCore.gypi so they can be seen
133         downstream
134         https://bugs.webkit.org/show_bug.cgi?id=27274
135
136         Changes the build file for chromium.  Test built the chromium tree
137         to verify.
138
139         * WebCore.gypi:
140
141 2009-07-15  Mark Rowe  <mrowe@apple.com>
142
143         I like it when the code compiles.
144
145         * WebCore.base.exp:
146
147 2009-07-15  Darin Adler  <darin@apple.com>
148
149         Reviewed by Sam Weinig.
150
151         Renamed parseURL to deprecatedParseURL.
152
153         * bindings/js/JSAttrCustom.cpp:
154         (WebCore::JSAttr::setValue): Renamed.
155         * bindings/js/JSElementCustom.cpp:
156         (WebCore::allowSettingSrcToJavascriptURL): Renamed.
157         * bindings/js/JSHTMLFrameElementCustom.cpp:
158         (WebCore::allowSettingJavascriptURL): Renamed.
159         * bindings/js/JSHTMLIFrameElementCustom.cpp:
160         (WebCore::JSHTMLIFrameElement::setSrc): Renamed.
161         * bindings/objc/DOM.mm:
162         (-[DOMElement _getURLAttribute:]): Renamed.
163         * bindings/objc/DOMHTML.mm:
164         (-[DOMHTMLDocument _createDocumentFragmentWithMarkupString:baseURLString:]): Renamed.
165         * bindings/v8/custom/V8CustomBinding.cpp:
166         (WebCore::allowSettingFrameSrcToJavascriptUrl): Renamed.
167         * css/CSSHelper.cpp:
168         (WebCore::deprecatedParseURL): Renamed.
169         * css/CSSHelper.h: Renamed and updated comment.
170         * html/HTMLAnchorElement.cpp:
171         (WebCore::HTMLAnchorElement::defaultEventHandler): Renamed.
172         (WebCore::HTMLAnchorElement::parseMappedAttribute): Renamed.
173         * html/HTMLBaseElement.cpp:
174         (WebCore::HTMLBaseElement::parseMappedAttribute): Renamed.
175         * html/HTMLBodyElement.cpp:
176         (WebCore::HTMLBodyElement::parseMappedAttribute): Renamed.
177         * html/HTMLEmbedElement.cpp:
178         (WebCore::HTMLEmbedElement::parseMappedAttribute): Renamed.
179         * html/HTMLFormElement.cpp:
180         (WebCore::HTMLFormElement::parseMappedAttribute): Renamed.
181         * html/HTMLFrameElementBase.cpp:
182         (WebCore::HTMLFrameElementBase::parseMappedAttribute): Renamed.
183         * html/HTMLImageElement.cpp:
184         (WebCore::HTMLImageElement::parseMappedAttribute): Renamed.
185         * html/HTMLImageLoader.cpp:
186         (WebCore::HTMLImageLoader::sourceURI): Renamed.
187         * html/HTMLLinkElement.cpp:
188         (WebCore::HTMLLinkElement::parseMappedAttribute): Renamed.
189         * html/HTMLObjectElement.cpp:
190         (WebCore::HTMLObjectElement::parseMappedAttribute): Renamed.
191         * html/HTMLTableElement.cpp:
192         (WebCore::HTMLTableElement::parseMappedAttribute): Renamed.
193         * html/HTMLTablePartElement.cpp:
194         (WebCore::HTMLTablePartElement::parseMappedAttribute): Renamed.
195         * html/HTMLTokenizer.cpp:
196         (WebCore::HTMLTokenizer::parseTag): Renamed.
197         * html/PreloadScanner.cpp:
198         (WebCore::PreloadScanner::processAttribute): Renamed.
199         (WebCore::PreloadScanner::emitCSSRule): Renamed.
200         * platform/chromium/ClipboardChromium.cpp:
201         (WebCore::ClipboardChromium::declareAndWriteDragImage): Renamed.
202         * platform/chromium/PasteboardChromium.cpp:
203         (WebCore::Pasteboard::writeImage): Renamed.
204         * platform/qt/ClipboardQt.cpp:
205         (WebCore::ClipboardQt::declareAndWriteDragImage): Renamed.
206         * platform/win/ClipboardWin.cpp:
207         (WebCore::ClipboardWin::declareAndWriteDragImage): Renamed.
208         * rendering/HitTestResult.cpp:
209         (WebCore::HitTestResult::absoluteImageURL): Renamed.
210         (WebCore::HitTestResult::absoluteMediaURL): Renamed.
211         (WebCore::HitTestResult::absoluteLinkURL): Renamed.
212         * svg/SVGAElement.cpp:
213         (WebCore::SVGAElement::defaultEventHandler): Renamed.
214         * svg/SVGImageLoader.cpp:
215         (WebCore::SVGImageLoader::sourceURI): Renamed.
216         * wml/WMLAElement.cpp:
217         (WebCore::WMLAElement::defaultEventHandler): Renamed.
218         * wml/WMLImageLoader.cpp:
219         (WebCore::WMLImageLoader::sourceURI): Renamed.
220
221 2009-07-15  Darin Adler  <darin@apple.com>
222
223         Reviewed by Dan Bernstein.
224
225         CSSHelper.h's parseURL is a function that no one should ever call
226         Part 1: Eliminate callers in the CSS parser.
227         https://bugs.webkit.org/show_bug.cgi?id=26599
228
229         Test: fast/css/uri-token-parsing.html
230
231         * css/CSSHelper.h: Added a comment explaining why nobody should ever call this
232         function. A FIXME suggests a next step, which would be to rename it deprecatedParseURL.
233
234         * css/CSSParser.cpp:
235         (WebCore::CSSParser::parseValue): Removed unneeded call to parseURL;
236         CSSParser::text already takes care of parsing the URI token syntax, and the
237         parseURL function does no good.
238         (WebCore::CSSParser::parseContent): Ditto.
239         (WebCore::CSSParser::parseFillImage): Ditto.
240         (WebCore::CSSParser::parseFontFaceSrc): Ditto.
241         (WebCore::CSSParser::parseBorderImage): Ditto.
242         (WebCore::isCSSWhitespace): Added. Helper function that makes the text function
243         easier to read.
244         (WebCore::CSSParser::text): Tweak logic so that leading and trailing whitespace
245         are both trimmed before removing the quote marks. Changed to use the
246         isCSSWhitespace, isASCIIHexDigit, and toASCIIHexValue functions for clarity.
247
248         * css/CSSParser.h: Removed stray "public:" in this header.
249
250         * platform/text/StringImpl.cpp:
251         (WebCore::StringImpl::substring): Optimized the case where the substring covers
252         the entire string, so we just share the StringImpl instead of making a new one.
253         This case came up in earlier versions of the CSS parser changes above.
254         (WebCore::StringImpl::substringCopy): Streamlined the logic here and made it
255         not call substring any more. Before, this was relying on the substring function
256         always making a copy of any non-empty substring.
257
258 2009-07-15  Darin Adler  <darin@apple.com>
259
260         Reviewed by John Sullivan.
261
262         After double-clicking a word, using Shift-arrow to select behaves unpredictably
263         https://bugs.webkit.org/show_bug.cgi?id=27177
264         rdar://problem/7034324
265
266         Test: editing/selection/extend-selection-after-double-click.html
267
268         The bug was due to the m_lastChangeWasHorizontalExtension flag, which was not
269         being cleared in many cases where it should have been.
270
271         * editing/SelectionController.cpp:
272         (WebCore::SelectionController::setSelection): Set m_lastChangeWasHorizontalExtension
273         to false. This catches all sorts of cases that don't flow through the modify function.
274         Before, the flag would reflect the last call to the modify function, which was not
275         necessarily the last selection change.
276         (WebCore::SelectionController::willBeModified): Rearrange function for clarity.
277         Remove code that sets m_lastChangeWasHorizontalExtension; that is now handled elsewhere. 
278         (WebCore::SelectionController::modify): Call setLastChangeWasHorizontalExtension after
279         setSelection when setting up a trial selection controller, since setSelection now
280         clears that flag. Also changed both trial selection controller cases to set the flag,
281         although it's not strictly necessary in both cases. Added code to set
282         m_lastChangeWasHorizontalExtension when extending the selection, which used to be
283         handled in willBeModified. Now we need to do it after the selection change.
284
285 2009-07-15  Jeremy Orlow  <jorlow@chromium.org>
286
287         Reviewed by Dimitri Glazkov.
288
289         Need to update DOM Storage files in GYPI file.
290         https://bugs.webkit.org/show_bug.cgi?id=27317
291
292         Need to update DOM Storage files in the GYPI file.  They're pretty out
293         of date and we're on the path towards enabling them for everyone!
294
295         * WebCore.gypi:
296
297 2009-07-15  Kwang Yul Seo  <skyul@company100.net>
298
299         Reviewed by Eric Seidel.
300
301         https://bugs.webkit.org/show_bug.cgi?id=26794
302         Make Yacc-generated parsers to use fastMalloc/fastFree.
303         
304         Define YYMALLOC and YYFREE to fastMalloc and fastFree
305         respectively.
306
307         * css/CSSGrammar.y:
308         * xml/XPathGrammar.y:
309
310 2009-07-15  David Hyatt  <hyatt@apple.com>
311
312         Reviewed by Adam Roben.
313
314         https://bugs.webkit.org/show_bug.cgi?id=27193
315         Don't run in to anonymous blocks.  No other browsers do this, and our implementation of run-in
316         is effectively broken as a result.
317
318         No new tests. Changed fast/runin/001.html and fast/runin/generated.html to match new behavior.
319
320         * rendering/RenderBlock.cpp:
321         (WebCore::RenderBlock::handleRunInChild):
322
323 2009-07-15  Yuzo Fujishima  <yuzo@google.com>
324
325         Reviewed by Darin Adler.
326
327         Test: fast/js/instanceof-operator.html
328
329         Fix for: Bug 25205 -  XMLHttpRequest instance is not an instanceof XMLHttpRequest
330         https://bugs.webkit.org/show_bug.cgi?id=25205
331
332         In addition to for XMLHttpRequest, this also fixes for:
333         - Audio
334         - Image
335         - MessageChannel
336         - Option
337         - WebKitCSSMatrix
338         - WebKitPoint
339         - Worker
340         - XSLTProcessor
341
342         * bindings/js/JSAudioConstructor.cpp:
343         (WebCore::JSAudioConstructor::JSAudioConstructor):
344         * bindings/js/JSAudioConstructor.h:
345         * bindings/js/JSDOMBinding.h:
346         (WebCore::DOMConstructorObject::createStructure):
347         (WebCore::DOMConstructorObject::DOMConstructorObject):
348         * bindings/js/JSImageConstructor.cpp:
349         (WebCore::JSImageConstructor::JSImageConstructor):
350         * bindings/js/JSImageConstructor.h:
351         * bindings/js/JSMessageChannelConstructor.cpp:
352         (WebCore::JSMessageChannelConstructor::JSMessageChannelConstructor):
353         * bindings/js/JSMessageChannelConstructor.h:
354         * bindings/js/JSOptionConstructor.cpp:
355         (WebCore::JSOptionConstructor::JSOptionConstructor):
356         * bindings/js/JSOptionConstructor.h:
357         * bindings/js/JSWebKitCSSMatrixConstructor.cpp:
358         (WebCore::JSWebKitCSSMatrixConstructor::JSWebKitCSSMatrixConstructor):
359         * bindings/js/JSWebKitCSSMatrixConstructor.h:
360         * bindings/js/JSWebKitPointConstructor.cpp:
361         (WebCore::JSWebKitPointConstructor::JSWebKitPointConstructor):
362         * bindings/js/JSWebKitPointConstructor.h:
363         * bindings/js/JSWorkerConstructor.cpp:
364         (WebCore::JSWorkerConstructor::JSWorkerConstructor):
365         * bindings/js/JSWorkerConstructor.h:
366         * bindings/js/JSXMLHttpRequestConstructor.cpp:
367         (WebCore::JSXMLHttpRequestConstructor::JSXMLHttpRequestConstructor):
368         * bindings/js/JSXMLHttpRequestConstructor.h:
369         * bindings/js/JSXSLTProcessorConstructor.cpp:
370         (WebCore::JSXSLTProcessorConstructor::JSXSLTProcessorConstructor):
371         * bindings/js/JSXSLTProcessorConstructor.h:
372
373 2009-07-15  Kai Br�ning  <kai@granus.net>
374
375         Reviewed by Dave Hyatt.
376
377         CSS21 attribute selectors not dynamic for xml.
378         https://bugs.webkit.org/show_bug.cgi?id=25072
379
380         Moved the relevant test in StyledElement::attributeChanged()
381         to a new function Element::recalcStyleIfNeededAfterAttributeChanged()
382         so it can be called from both StyledElement::attributeChanged()
383         and Element::attributeChanged().
384         Refactored Element::attributeChanged() into
385         Element::updateAfterAttributeChanged() and
386         Element::recalcStyleIfNeededAfterAttributeChanged(), which are called
387         separately from StyledElement::attributeChanged().
388
389         Test: fast/css/attribute-selector-dynamic.xml
390
391         * dom/Element.cpp:
392         (WebCore::Element::attributeChanged):
393         (WebCore::Element::updateAfterAttributeChanged):
394         (WebCore::Element::recalcStyleIfNeededAfterAttributeChanged):
395         * dom/Element.h:
396         * dom/StyledElement.cpp:
397         (WebCore::StyledElement::attributeChanged):
398
399 2009-07-15  Alpha Lam  <hclam@chromium.org>
400
401         Reviewed by David Levin.
402
403         [V8] Layout test failures for drawImage in Canvas
404         https://bugs.webkit.org/show_bug.cgi?id=27311
405
406         Fixing several canvas layout tests failures due to a
407         missing return statement in CanvasRenderingContext2DDrawImage() which
408         was accidentally removed in r45929.
409
410         * bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp:
411
412 2009-07-15  Robert Hogan  <robert@roberthogan.net>
413
414         Reviewed by Eric Seidel.
415
416         https://bugs.webkit.org/show_bug.cgi?id=26969
417
418         If the httpMethod() of the request passed to SubresourceLoader::create is not
419         supported by the client we must expect to call didFail() while m_loader is still null.
420
421         * loader/DocumentThreadableLoader.cpp:
422         (DocumentThreadableLoader::didFail):Changed.
423
424 2009-07-15  Mark Rowe  <mrowe@apple.com>
425
426         Fix the Mac build.
427
428         * WebCore.base.exp:
429         * css/MediaQueryEvaluator.cpp:
430         * rendering/SVGRenderTreeAsText.cpp:
431         * rendering/style/SVGRenderStyle.cpp:
432         * svg/graphics/SVGPaintServer.cpp:
433
434 2009-07-07  Alpha Lam  <hclam@chromium.org>
435
436         Reviewed by Dimitri Glazkov.
437
438         [V8] drawImage method of HTMLCanvasElement to accept HTMLVideoElement as argument
439         https://bugs.webkit.org/show_bug.cgi?id=27170
440
441         Changed CanvasRenderingContext2DDrawImage() to accept HTMLVideoElement
442         as a parameter of drawImage() for HTMLCanvasElement.
443
444         * bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp:
445
446 2009-07-15  Adam Barth  <abarth@webkit.org>
447
448         Reviewed by Dimitri Glazkov.
449
450         [V8] Fix isolated world constructors
451         https://bugs.webkit.org/show_bug.cgi?id=27287
452
453         Don't enter V8Proxy::m_context before creating DOM constructors.
454         Instead, use getWrapperContext to get the right context.
455
456         After this patch, all my tests pass.  I'll enable the feature
457         downstream and land the tests.
458
459         * bindings/scripts/CodeGeneratorV8.pm:
460         * bindings/v8/V8DOMWrapper.cpp:
461         (WebCore::V8DOMWrapper::getConstructor):
462         (WebCore::V8DOMWrapper::lookupDOMWrapper):
463         * bindings/v8/V8DOMWrapper.h:
464         * bindings/v8/V8IsolatedWorld.cpp:
465         (WebCore::V8IsolatedWorld::evaluate):
466         * bindings/v8/V8Proxy.cpp:
467         (WebCore::V8Proxy::createWrapperFromCache):
468         (WebCore::V8Proxy::isContextInitialized):
469         (WebCore::V8Proxy::disposeContextHandles):
470         (WebCore::V8Proxy::installDOMWindow):
471         (WebCore::V8Proxy::initContextIfNeeded):
472         (WebCore::V8Proxy::getHiddenObjectPrototype):
473         (WebCore::V8Proxy::installHiddenObjectPrototype):
474         * bindings/v8/V8Proxy.h:
475
476 2009-07-15  Antonio Gomes   <antonio.gomes@openbossa.org>
477
478         Reviewed by Darin Adler.
479
480         useless null-check statement in visible_units.cpp@logicalStartOfLine
481         https://bugs.webkit.org/show_bug.cgi?id=27154
482
483         Simple fix.
484
485         * editing/visible_units.cpp:
486         (WebCore::logicalStartOfLine): Doubled honorEditableBoundaryAtOrAfter() call removed.
487
488 2009-07-15  Brady Eidson  <beidson@apple.com>
489
490         Reviewed by Dan Bernstein.
491
492         https://bugs.webkit.org/show_bug.cgi?id=27304
493         WebKit should provide usage and eligibility information about the page cache.
494
495         * WebCore.base.exp:
496
497         * history/CachedFrame.cpp:
498         (WebCore::CachedFrame::childFrameCount):
499         * history/CachedFrame.h:
500
501         * history/PageCache.cpp:
502         (WebCore::PageCache::frameCount):
503         (WebCore::PageCache::autoreleasedPageCount):
504         * history/PageCache.h:
505         (WebCore::PageCache::pageCount):
506
507 2009-07-15  Shinichiro Hamaji  <hamaji@chromium.org>
508
509         Reviewed by David Levin.
510
511         Chromium's canvas forgets its context after fillText again
512         https://bugs.webkit.org/show_bug.cgi?id=27293
513
514         No new tests because the test for this was already added in
515         https://bugs.webkit.org/show_bug.cgi?id=26436
516
517         * platform/graphics/chromium/TransparencyWin.cpp:
518         (WebCore::TransparencyWin::compositeTextComposite):
519
520 2009-07-14  David Hyatt  <hyatt@apple.com>
521
522         Reviewed by Simon Fraser.
523
524         https://bugs.webkit.org/show_bug.cgi?id=27283
525
526         Implement the new 'rem' unit from CSS3.
527
528         Added some rem-* tests in fast/css.
529
530         * css/CSSGrammar.y:
531         * css/CSSParser.cpp:
532         (WebCore::CSSParser::validUnit):
533         (WebCore::unitFromString):
534         (WebCore::CSSParser::parseValue):
535         (WebCore::CSSParser::lex):
536         * css/CSSParserValues.cpp:
537         (WebCore::CSSParserValue::createCSSValue):
538         * css/CSSPrimitiveValue.cpp:
539         (WebCore::CSSPrimitiveValue::computeLengthInt):
540         (WebCore::CSSPrimitiveValue::computeLengthIntForLength):
541         (WebCore::CSSPrimitiveValue::computeLengthShort):
542         (WebCore::CSSPrimitiveValue::computeLengthFloat):
543         (WebCore::CSSPrimitiveValue::computeLengthDouble):
544         (WebCore::CSSPrimitiveValue::cssText):
545         (WebCore::CSSPrimitiveValue::parserValue):
546         * css/CSSPrimitiveValue.h:
547         (WebCore::CSSPrimitiveValue::):
548         (WebCore::CSSPrimitiveValue::isUnitTypeLength):
549         * css/CSSStyleSelector.cpp:
550         (WebCore::CSSStyleSelector::initForStyleResolve):
551         (WebCore::convertToLength):
552         (WebCore::CSSStyleSelector::applyProperty):
553         (WebCore::CSSStyleSelector::mapFillSize):
554         (WebCore::CSSStyleSelector::mapFillXPosition):
555         (WebCore::CSSStyleSelector::mapFillYPosition):
556         (WebCore::CSSStyleSelector::createTransformOperations):
557         * css/CSSStyleSelector.h:
558         * css/MediaQueryEvaluator.cpp:
559         (WebCore::device_heightMediaFeatureEval):
560         (WebCore::device_widthMediaFeatureEval):
561         (WebCore::heightMediaFeatureEval):
562         (WebCore::widthMediaFeatureEval):
563         * css/WebKitCSSMatrix.cpp:
564         (WebCore::WebKitCSSMatrix::setMatrixValue):
565         * css/tokenizer.flex:
566         * dom/Document.cpp:
567         (WebCore::Document::Document):
568         * dom/Document.h:
569         (WebCore::Document::usesRemUnits):
570         (WebCore::Document::setUsesRemUnits):
571         * dom/Element.cpp:
572         (WebCore::Element::recalcStyle):
573         * rendering/SVGRenderTreeAsText.cpp:
574         (WebCore::writeStyle):
575         * rendering/style/SVGRenderStyle.cpp:
576         (WebCore::SVGRenderStyle::cssPrimitiveToLength):
577         * svg/graphics/SVGPaintServer.cpp:
578         (WebCore::applyStrokeStyleToContext):
579         (WebCore::dashArrayFromRenderingStyle):
580         * svg/graphics/SVGPaintServer.h:
581
582 2009-07-15  Dimitri Glazkov  <dglazkov@chromium.org>
583
584         Unreviewed, build fix.
585
586         Remove extraneous qualifier, accidentally added in http://trac.webkit.org/changeset/45884.
587
588         * bindings/v8/V8DOMWrapper.h: Removed extraneous qualifier.
589
590 2009-07-15  Dimitri Glazkov  <dglazkov@chromium.org>
591
592         Reviewed by Darin Fisher.
593
594         [V8] Update bindings for ValiditeState patch.
595         https://bugs.webkit.org/show_bug.cgi?id=19562
596
597         * bindings/v8/DOMObjectsInclude.h:
598         * bindings/v8/DerivedSourcesAllInOne.cpp:
599         * bindings/v8/V8Index.cpp:
600         * bindings/v8/V8Index.h:
601
602 2009-07-15  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
603
604         Reviewed by Simon Hausmann.
605
606         [Qt] Cleanup - Remove obsolete code from the make system
607         https://bugs.webkit.org/show_bug.cgi?id=27299
608
609         * WebCore.pro:
610
611 2009-07-15  Simon Hausmann  <simon.hausmann@nokia.com>
612
613         Reviewed by Ariya Hidayat.
614
615         Fix the build without media elements.
616
617         * rendering/HitTestResult.cpp:
618         (WebCore::HitTestResult::absoluteMediaURL): Add #if ENABLE(VIDEO)
619         markers around the body of the method.
620
621 2009-07-14  Pavel Feldman  <pfeldman@chromium.org>
622
623         Reviewed by Timothy Hatcher.
624
625         WebInspector: Move storeLastActivePanel out of the
626         ifdef ENABLE_JAVASCRIPT_DEBUGGER section in IDL;
627         Add default panel for the first opening of the
628         WebInspector.
629
630         https://bugs.webkit.org/show_bug.cgi?id=27263
631
632         * inspector/InspectorController.cpp:
633         (InspectorController::setWindowVisible):
634         * inspector/InspectorController.idl:
635
636 2009-07-14  Darin Adler  <darin@apple.com>
637
638         Try to fix Windows build.
639
640         * bindings/scripts/CodeGeneratorCOM.pm: Add Reflect and ReflectURL support.
641
642 2009-07-14  Pierre d'Herbemont  <pdherbemont@apple.com>
643
644         Reviewed by Oliver Hunt.
645
646         HTMLMediaElement::supportsFullscreen() should return false
647         https://bugs.webkit.org/show_bug.cgi?id=27284
648
649         (Reverting a part of 45875)
650
651         HTMLVideoElement::supportsFullscreen() will properly do the
652         job, and check if the backend supports fullscreen.
653
654         HTMLVideoElement is the only subclass to support fullscreen
655         (conditionnaly). HTMLAudioElement fullscreen is not supported
656         and is a different kind of fullscreen, if it comes to be wanted.
657
658         No test can be done currently given that none of the media
659         backends support fullscreen.
660
661         * html/HTMLMediaElement.cpp:
662         * html/HTMLMediaElement.h:
663         (WebCore::HTMLMediaElement::supportsFullscreen):
664
665 2009-07-14  Darin Adler  <darin@apple.com>
666
667         Reviewed by Dimitri Glazkov.
668
669         Next step in making DOM attribute getter/setters consistently use AtomicString
670         https://bugs.webkit.org/show_bug.cgi?id=25425
671
672         This covers eight DOM classes, and for each one of the classes:
673
674         - Changes the IDL to use the Reflect syntax for all simple cases.
675         - Removes unused functions in the classes, mainly newly unused ones that were
676           used for reflection before.
677         - Removes unneeded explicitly defined destructors.
678         - Explicitly declares destructors as virtual.
679         - Removes unneeded includes.
680         - Makes members protected or private rather than public where possible.
681         - Renames "doc" to "document".
682         - Tweaks formatting to match our latest style in a few places.
683         - Improves some FIXME comments.
684
685         Over time we'll want to do this for all HTML DOM classes.
686
687         * html/HTMLAnchorElement.cpp:
688         (WebCore::HTMLAnchorElement::HTMLAnchorElement):
689         * html/HTMLAnchorElement.h:
690         (WebCore::HTMLAnchorElement::endTagRequirement):
691         (WebCore::HTMLAnchorElement::tagPriority):
692         * html/HTMLAnchorElement.idl:
693         * html/HTMLAppletElement.cpp:
694         * html/HTMLAppletElement.h:
695         * html/HTMLAppletElement.idl:
696         * html/HTMLAreaElement.cpp:
697         (WebCore::HTMLAreaElement::parseMappedAttribute):
698         * html/HTMLAreaElement.h:
699         (WebCore::HTMLAreaElement::endTagRequirement):
700         (WebCore::HTMLAreaElement::tagPriority):
701         * html/HTMLAreaElement.idl:
702         * html/HTMLBRElement.cpp:
703         (WebCore::HTMLBRElement::parseMappedAttribute):
704         * html/HTMLBRElement.h:
705         * html/HTMLBRElement.idl:
706         * html/HTMLBaseElement.cpp:
707         (WebCore::HTMLBaseElement::HTMLBaseElement):
708         (WebCore::HTMLBaseElement::removedFromDocument):
709         (WebCore::HTMLBaseElement::process):
710         * html/HTMLBaseElement.h:
711         * html/HTMLBaseElement.idl:
712         * html/HTMLBaseFontElement.cpp:
713         (WebCore::HTMLBaseFontElement::HTMLBaseFontElement):
714         * html/HTMLBaseFontElement.h:
715         (WebCore::HTMLBaseFontElement::endTagRequirement):
716         (WebCore::HTMLBaseFontElement::tagPriority):
717         * html/HTMLBaseFontElement.idl:
718         * html/HTMLBlockquoteElement.cpp:
719         (WebCore::HTMLBlockquoteElement::HTMLBlockquoteElement):
720         * html/HTMLBlockquoteElement.h:
721         (WebCore::HTMLBlockquoteElement::tagPriority):
722         * html/HTMLBlockquoteElement.idl:
723         * html/HTMLBodyElement.cpp:
724         (WebCore::HTMLBodyElement::HTMLBodyElement):
725         (WebCore::HTMLBodyElement::addSubresourceAttributeURLs):
726         * html/HTMLBodyElement.h:
727         (WebCore::HTMLBodyElement::endTagRequirement):
728         (WebCore::HTMLBodyElement::tagPriority):
729         * html/HTMLBodyElement.idl:
730         Made changes as described above.
731
732         * loader/FrameLoader.cpp: Removed unneeded include of HTMLAnchorElement.h.
733
734 2009-07-14  Steve Falkenburg  <sfalken@apple.com>
735
736         Reorganize JavaScriptCore headers into:
737         API: include/JavaScriptCore/
738         Private: include/private/JavaScriptCore/
739
740         Reviewed by Darin Adler.
741
742         * WebCore.vcproj/QTMovieWin.vcproj:
743         * WebCore.vcproj/WebCoreCommon.vsprops:
744         * WebCore.vcproj/build-generated-files.sh:
745
746 2009-07-14  Zoltan Horvath  <hzoltan@inf.u-szeged.hu>
747
748         Reviewed by Darin Adler.
749
750         Change all Noncopyable inheriting visibility to public.
751         https://bugs.webkit.org/show_bug.cgi?id=27225
752
753         Change all Noncopyable inheriting visibility to public because
754         it is needed to the custom allocation framework (bug #20422).
755
756         * bindings/js/GCController.h:
757         * bindings/js/WorkerScriptController.h:
758         * bindings/v8/V8DOMMap.cpp:
759         (WebCore::):
760         * bridge/runtime.h:
761         * css/CSSSelector.h:
762         * css/CSSSelectorList.h:
763         * css/CSSStyleSelector.h:
764         * dom/ClassNames.h:
765         * dom/MessagePortChannel.h:
766         * dom/XMLTokenizerLibxml2.cpp:
767         * dom/XMLTokenizerScope.h:
768         * editing/ReplaceSelectionCommand.cpp:
769         * editing/SelectionController.h:
770         * editing/TextIterator.cpp:
771         * history/PageCache.h:
772         * html/CanvasRenderingContext2D.h:
773         * html/HTMLParser.h:
774         * html/HTMLParserQuirks.h:
775         * html/PreloadScanner.h:
776         * loader/Cache.h:
777         * loader/CrossOriginPreflightResultCache.h:
778         * loader/FrameLoader.h:
779         * loader/ProgressTracker.h:
780         * loader/ThreadableLoader.h:
781         * loader/appcache/ApplicationCacheGroup.h:
782         * loader/archive/ArchiveResourceCollection.h:
783         * loader/icon/IconDatabase.h:
784         * loader/icon/IconLoader.h:
785         * loader/icon/PageURLRecord.h:
786         * loader/loader.h:
787         * page/ContextMenuController.h:
788         * page/EventHandler.h:
789         * page/FrameTree.h:
790         * page/Page.h:
791         * page/PageGroup.h:
792         * page/PageGroupLoadDeferrer.h:
793         * page/mac/EventHandlerMac.mm:
794         * platform/AutodrainedPool.h:
795         * platform/ContextMenu.h:
796         * platform/EventLoop.h:
797         * platform/HostWindow.h:
798         * platform/Pasteboard.h:
799         * platform/PurgeableBuffer.h:
800         * platform/RunLoopTimer.h:
801         * platform/ThreadGlobalData.h:
802         * platform/ThreadTimers.h:
803         * platform/Timer.h:
804         * platform/TreeShared.h:
805         * platform/graphics/FontData.h:
806         * platform/graphics/GlyphWidthMap.h:
807         * platform/graphics/GraphicsContext.h:
808         * platform/graphics/ImageBuffer.h:
809         * platform/graphics/ImageSource.h:
810         * platform/graphics/MediaPlayer.h:
811         * platform/graphics/skia/GraphicsContextPlatformPrivate.h:
812         * platform/graphics/skia/PlatformContextSkia.h:
813         * platform/graphics/win/QTMovieWin.cpp:
814         * platform/mac/LocalCurrentGraphicsContext.h:
815         * platform/network/FormDataBuilder.h:
816         * platform/network/ResourceHandleInternal.h:
817         * platform/network/soup/ResourceHandleSoup.cpp:
818         * platform/text/StringBuffer.h:
819         * platform/text/TextCodec.h:
820         * platform/win/WindowMessageBroadcaster.h:
821         * rendering/CounterNode.h:
822         * rendering/LayoutState.h:
823         * rendering/RenderFrameSet.h:
824         * rendering/RenderView.h:
825         * rendering/TransformState.h:
826         * svg/SVGAnimatedProperty.h:
827         * svg/SynchronizableTypeWrapper.h:
828         * workers/WorkerMessagingProxy.h:
829         * workers/WorkerRunLoop.cpp:
830         * xml/XPathExpressionNode.h:
831         * xml/XPathParser.h:
832         * xml/XPathPredicate.h:
833         * xml/XPathStep.h:
834
835 2009-07-14  Darin Fisher  <darin@chromium.org>
836
837         Reviewed by Darin Adler.
838
839         Fails to save document state when navigating away from a page with a
840         reference fragment.
841         https://bugs.webkit.org/show_bug.cgi?id=27281
842
843         Test: fast/history/saves-state-after-fragment-nav.html
844
845         * history/HistoryItem.cpp:
846         (WebCore::HistoryItem::isCurrentDocument): Use equalIgnoringRef
847         to compare URLs.
848
849 2009-07-14  Joseph Pecoraro  <joepeck02@gmail.com>
850
851         Reviewed by Sam Weinig.
852
853         Inspector: Remove Unintended Global Variables
854         https://bugs.webkit.org/show_bug.cgi?id=27203
855
856         * inspector/front-end/Console.js:
857         (WebInspector.Console.prototype._ensureCommandLineAPIInstalled):
858         * inspector/front-end/DatabasesPanel.js:
859         (WebInspector.DatabasesPanel.prototype.dataGridForDOMStorage):
860         * inspector/front-end/ObjectPropertiesSection.js:
861         (WebInspector.ObjectPropertyTreeElement.prototype.update):
862         * inspector/front-end/inspector.js:
863         (WebInspector.animateStyle):
864
865 2009-07-14  Michelangelo De Simone  <micdesim@gmail.com>
866
867         Reviewed by Adele Peterson.
868
869         https://bugs.webkit.org/show_bug.cgi?id=19562
870         Added build stuff and stub for the ValidityState class, part of HTML5
871         section Forms:
872         http://www.whatwg.org/specs/web-apps/current-work/multipage/forms.html#validitystate
873
874         Test: fast/forms/ValidityState-001.html
875
876         * DerivedSources.cpp: Inclusion of ValidityState files
877         * DerivedSources.make: ditto
878         * GNUmakefile.am: ditto
879         * WebCore.gypi: ditto
880         * WebCore.pro: ditto
881         * WebCore.vcproj/WebCore.vcproj: ditto
882         * WebCore.xcodeproj/project.pbxproj: ditto
883         * WebCoreSources.bkl: ditto
884         * html/HTMLButtonElement.idl: validity attribute
885         * html/HTMLFieldSetElement.idl: ditto
886         * html/HTMLFormControlElement.cpp:
887         (WebCore::HTMLFormControlElement::validity): ValidityState getter
888         * html/HTMLFormControlElement.h: ditto
889         * html/HTMLInputElement.idl: validity attribute
890         * html/HTMLSelectElement.idl: ditto
891         * html/HTMLTextAreaElement.idl: ditto
892         * html/ValidityState.cpp: Added.
893         (WebCore::ValidityState::ValidityState):
894         (WebCore::ValidityState::valid): validation flag
895         * html/ValidityState.h: Added.
896         (WebCore::ValidityState::create): validation flag
897         (WebCore::ValidityState::control): ditto
898         (WebCore::ValidityState::valueMissing): ditto
899         (WebCore::ValidityState::typeMismatch): ditto
900         (WebCore::ValidityState::patternMismatch): ditto
901         (WebCore::ValidityState::tooLong): ditto
902         (WebCore::ValidityState::rangeUnderflow): ditto
903         (WebCore::ValidityState::rangeOverflow): ditto
904         (WebCore::ValidityState::stepMismatch): ditto
905         (WebCore::ValidityState::customError): ditto
906         * html/ValidityState.idl: Added.
907
908 2009-07-14  Ryosuke Niwa  <rniwa@google.com>
909
910         Reviewed by Eric Seidel.
911
912         Outdenting a line inside a blockquote tag does nothing
913         https://bugs.webkit.org/show_bug.cgi?id=25316
914
915         The bug was caused by the code checking whether the blockquote is created by WebKit or not.
916         We simply remove this code to be consistent with Firefox and Internet Explorer.
917         Also, enclosingBlockFlow == enclosingNode in outdentParagraph isn't a sufficient condition to insert
918         the placeholder before the enclosingNode because there could be contents before the current paragraph.
919         Instead, we should split the enclosingNode (which is a blockquote) at the starting position of outdentation.
920         It turned out that this solves the bug 25315 also: https://bugs.webkit.org/show_bug.cgi?id=25315
921
922         Test: editing/execCommand/outdent-regular-blockquote.html
923
924         * editing/IndentOutdentCommand.cpp:
925         (WebCore::isIndentBlockquote): no longer checks whether a blockquote is created by WebKit or not.
926         (WebCore::IndentOutdentCommand::outdentParagraph): takes care of the case enclosingBlockFlow == enclosingNode
927
928 2009-07-14  Adam Barth  <abarth@webkit.org>
929
930         Reviewed by Dimitri Glazkov.
931
932         [V8] Fix isolated world wrappers for Node prototypes
933         https://bugs.webkit.org/show_bug.cgi?id=27277
934
935         This change does two things:
936
937         1) We bypass the wrapper cache in the isolated world.  This is because
938            the wrapper template cache has prototypes that lead to the main
939            world.  We can add a template cache for the isolated world if
940            performance warrants.
941
942         2) We introduce a smarter way to grab the wrapper context for a frame
943            that is aware that proxy <-> context do not stand in one-to-one
944            correspondence.  This generalizes our solution for the node wrapper
945            case to prototypes.
946
947         The net result is that Node wrappers get the right prototypes.  As
948         before, tests to follow.
949
950         * bindings/v8/V8DOMWrapper.cpp:
951         (WebCore::V8DOMWrapper::setHiddenWindowReference):
952         (WebCore::V8DOMWrapper::instantiateV8Object):
953         (WebCore::V8DOMWrapper::convertNodeToV8Object):
954         (WebCore::V8DOMWrapper::convertWindowToV8Object):
955         (WebCore::V8DOMWrapper::getWrapperContext):
956         * bindings/v8/V8DOMWrapper.h:
957
958 2009-07-14  Adam Barth  <abarth@webkit.org>
959
960         Reviewed by Dimitri Glazkov.
961
962         [V8] Fix isolated world wrappers for Nodes
963         https://bugs.webkit.org/show_bug.cgi?id=27271
964
965         Previously, we keepy a pointer to the DOMMap on V8Proxy, but this
966         caused us to miss the branch in V8DOMMap.cpp for isolated worlds.
967
968         I have tests, but I can't land them until I get this feature under
969         control.
970
971         * bindings/v8/V8DOMWrapper.cpp:
972         (WebCore::V8DOMWrapper::convertNodeToV8Object):
973         * bindings/v8/V8Proxy.h:
974         (WebCore::V8Proxy::V8Proxy):
975
976 2009-07-14  Adam Barth  <abarth@webkit.org>
977
978         Reviewed by Dimitri Glazkov.
979
980         [V8] Fix isolated world crash on getting window.location
981         https://bugs.webkit.org/show_bug.cgi?id=27268
982
983         I have a test for this locally, but it requires a compile-time hack to
984         run.  Once I get the feature's stability under control, we can turn the
985         feature on and add the tests.
986
987         * bindings/v8/V8DOMWrapper.cpp:
988         (WebCore::V8DOMWrapper::setHiddenWindowReference):
989         * bindings/v8/V8IsolatedWorld.h:
990         (WebCore::V8IsolatedWorld::context):
991
992 2009-07-14  Brent Fulgham  <bfulgham@webkit.org>
993
994         Correct failing tests after r45875.  The original patch did not
995         test the m_player member for null, causing crashes.  This will
996         happen fairly frequently in real use.  Was this original patch
997         ever tested?
998         https://bugs.webkit.org/show_bug.cgi?id=27246
999
1000         Test via existing media tests.
1001
1002         * html/HTMLMediaElement.cpp:
1003         (WebCore::HTMLMediaElement::supportsFullscreen): Check for null pointer.
1004         (WebCore::HTMLMediaElement::supportsSave): Check for null pointer.
1005
1006 2009-07-14  Avi Drissman  <avi@chromium.org>
1007
1008         Reviewed by Darin Fisher.
1009
1010         Explicitly mark the HTML generated for the Mac as being UTF-8 encoded.
1011         The Windows clipboard format is explicitly documented as being UTF-8,
1012         and all Linux apps assume UTF-8. On the Mac, though, unless otherwise
1013         indicated, Windows-1252 is assumed, which is wrong.
1014
1015         Bug: https://bugs.webkit.org/show_bug.cgi?id=27262
1016
1017         No new tests.
1018
1019         * platform/chromium/ClipboardChromium.cpp:
1020         (WebCore::ClipboardChromium::writeRange):
1021         * platform/chromium/PasteboardChromium.cpp:
1022         (WebCore::Pasteboard::writeSelection):
1023
1024 2009-07-14  Albert J. Wong  <ajwong@chromium.org>
1025
1026         Reviewed by Dimitri Glazkov.
1027
1028         Upstream V8NPObject.h and V8NPObject.cpp.
1029         https://bugs.webkit.org/show_bug.cgi?id=27103
1030
1031         This just upstreams the files from the chromium code base. Only
1032         minor changes to formatting and similar were done, so no testing
1033         is required because nothing really changed.  Code verified to compile.
1034
1035         * bindings/v8/ScriptController.cpp:
1036         (WebCore::ScriptController::bindToWindowObject):
1037         (WebCore::ScriptController::createScriptInstanceForWidget):
1038         * bindings/v8/V8NPObject.cpp: Added.
1039         (npObjectInvokeImpl):
1040         (npObjectMethodHandler):
1041         (npObjectInvokeDefaultHandler):
1042         (weakTemplateCallback):
1043         (npObjectGetProperty):
1044         (npObjectNamedPropertyGetter):
1045         (npObjectIndexedPropertyGetter):
1046         (npObjectGetNamedProperty):
1047         (npObjectGetIndexedProperty):
1048         (npObjectSetProperty):
1049         (npObjectNamedPropertySetter):
1050         (npObjectIndexedPropertySetter):
1051         (npObjectSetNamedProperty):
1052         (npObjectSetIndexedProperty):
1053         (weakNPObjectCallback):
1054         (createV8ObjectForNPObject):
1055         (forgetV8ObjectForNPObject):
1056         * bindings/v8/V8NPObject.h: Added.
1057         * bindings/v8/custom/V8HTMLPlugInElementCustom.cpp:
1058         (WebCore::NAMED_PROPERTY_GETTER):
1059         (WebCore::NAMED_PROPERTY_SETTER):
1060         (WebCore::CALLBACK_FUNC_DECL):
1061         (WebCore::INDEXED_PROPERTY_GETTER):
1062         (WebCore::INDEXED_PROPERTY_SETTER):
1063
1064
1065 2009-07-14  Albert J. Wong  <ajwong@chromium.org>
1066
1067         Reviewed by Darin Adler.
1068
1069         Add HTMLMediaElement::supportSave() and a
1070         HitTestResult::absoluteMediaURL() functions
1071         https://bugs.webkit.org/show_bug.cgi?id=27246
1072
1073         Added an implementation of supportsSave() into HTMLMediaElement
1074         that delegates to MediaPlayerPrivateImpl so that the media engine
1075         is able to signal whether or not a media source supports saving.
1076
1077         Also added a function to HitTestResult that allows for retrieval
1078         of the currentSrc associated with the "hit" media element. 
1079         
1080         These functions are just pipeing with no visible UI change so there
1081         are no related layout test changes.
1082
1083         * html/HTMLMediaElement.cpp:
1084         (WebCore::HTMLMediaElement::supportsFullscreen): 
1085         (WebCore::HTMLMediaElement::supportsSave):
1086         * html/HTMLMediaElement.h:
1087         * platform/graphics/MediaPlayer.cpp:
1088         (WebCore::MediaPlayer::supportsSave):
1089         * platform/graphics/MediaPlayer.h:
1090         * platform/graphics/MediaPlayerPrivate.h:
1091         (WebCore::MediaPlayerPrivateInterface::supportsFullscreen):
1092         (WebCore::MediaPlayerPrivateInterface::supportsSave):
1093         * rendering/HitTestResult.cpp:
1094         (WebCore::HitTestResult::altDisplayString):
1095         (WebCore::HitTestResult::absoluteMediaURL):
1096         * rendering/HitTestResult.h:
1097
1098 2009-07-14  Dimitri Glazkov  <dglazkov@chromium.org>
1099
1100         Reviewed by Adam Barth.
1101
1102         [V8] Implement Reflect and ReflectURL attribute support.
1103         https://bugs.webkit.org/show_bug.cgi?id=27273
1104
1105         * bindings/scripts/CodeGeneratorV8.pm: Added support for Reflect and ReflectURL attributes.
1106
1107 2009-07-14  Dmitry Titov  <dimich@chromium.org>
1108
1109         Reviewed by Darin Adler.
1110
1111         https://bugs.webkit.org/show_bug.cgi?id=27266
1112         Add hasCurrentPoint() to WebCore::Path.
1113         This fixes Skia-based Chromium regression caused by the fix for
1114         https://bugs.webkit.org/show_bug.cgi?id=27187.
1115         For Skia, the new method always returns 'true', pending actual implementation.
1116         This means Chromium still will differ from Gecko behavior, but at least its Canvas
1117         will not be completely broken.
1118
1119         Existing Canvas Layout Tests should pass in Chromium after this change.
1120
1121         * html/CanvasRenderingContext2D.cpp:
1122         (WebCore::CanvasRenderingContext2D::lineTo): insteand of Path::isEmpty() test for hasCurrentPoint().
1123         (WebCore::CanvasRenderingContext2D::quadraticCurveTo): ditto.
1124         (WebCore::CanvasRenderingContext2D::bezierCurveTo): ditto.
1125
1126         * platform/graphics/Path.h:
1127         * platform/graphics/cairo/PathCairo.cpp:
1128         (WebCore::Path::hasCurrentPoint):
1129         * platform/graphics/cg/PathCG.cpp:
1130         (WebCore::Path::isEmpty):
1131         (WebCore::Path::hasCurrentPoint):
1132         * platform/graphics/qt/PathQt.cpp:
1133         (WebCore::Path::hasCurrentPoint):
1134         * platform/graphics/skia/PathSkia.cpp:
1135         (WebCore::Path::hasCurrentPoint):
1136         * platform/graphics/wx/PathWx.cpp:
1137         (WebCore::Path::hasCurrentPoint):
1138         All these files add a Path::hasCurrentPoint() for various platforms.
1139
1140 2009-07-14  Nate Chapin  <japhet@chromium.org>
1141
1142         Reviewed by Sam Weinig.
1143
1144         Upstream RGBColor from src.chromium.org.
1145
1146         https://bugs.webkit.org/show_bug.cgi?id=27133
1147
1148         * WebCore.gypi: Add RGBColor
1149         * css/RGBColor.cpp: Added.
1150         (WebCore::RGBColor::create):
1151         (WebCore::RGBColor::red):
1152         (WebCore::RGBColor::green):
1153         (WebCore::RGBColor::blue):
1154         * css/RGBColor.h: Added.
1155         (WebCore::RGBColor::RGBColor):
1156
1157 2009-07-10  Matt Perry  <mpcomplete@chromium.org>
1158
1159         Reviewed by Darin Fisher.
1160
1161         [V8] Rename the didCreate/DestroyScriptContext calls to make it
1162         clear that that those refer to the frame's contxt.  Add another
1163         similar call for when creating contexts via evaluateInNewContext.
1164         https://bugs.webkit.org/show_bug.cgi?id=27104
1165
1166         * bindings/v8/V8Proxy.cpp:
1167         (WebCore::V8Proxy::evaluateInNewContext):
1168         (WebCore::V8Proxy::disposeContextHandles):
1169         (WebCore::V8Proxy::initContextIfNeeded):
1170         * loader/EmptyClients.h:
1171         (WebCore::EmptyFrameLoaderClient::didCreateScriptContextForFrame):
1172         (WebCore::EmptyFrameLoaderClient::didDestroyScriptContextForFrame):
1173         (WebCore::EmptyFrameLoaderClient::didCreateIsolatedScriptContext):
1174         * loader/FrameLoaderClient.h:
1175
1176 2009-07-14  Brent Fulgham  <bfulgham@webkit.org>
1177
1178         Revert http://trac.webkit.org/changeset/45864 after
1179         breaking of Windows build.
1180
1181         * storage/LocalStorageTask.cpp:
1182         * storage/LocalStorageTask.h:
1183         * storage/Storage.cpp:
1184         * storage/Storage.h:
1185         * storage/StorageArea.cpp:
1186         * storage/StorageArea.h:
1187         * storage/StorageAreaImpl.cpp:
1188         * storage/StorageAreaImpl.h:
1189         * storage/StorageAreaSync.cpp:
1190         * storage/StorageAreaSync.h:
1191         * storage/StorageEvent.cpp:
1192         * storage/StorageEvent.h:
1193         (WebCore::StorageEvent::create):
1194         (WebCore::StorageEvent::StorageEvent):
1195         * storage/StorageNamespace.h:
1196         * storage/StorageNamespaceImpl.cpp:
1197         * storage/StorageNamespaceImpl.h:
1198         * storage/StorageSyncManager.cpp:
1199         * storage/StorageSyncManager.h:
1200
1201 2009-07-11  Jeremy Orlow  <jorlow@chromium.org>
1202
1203         Reviewed by Darin Adler.
1204
1205         Cleanup DOM Storage dependencies.
1206         https://bugs.webkit.org/show_bug.cgi?id=27180
1207
1208         DOM Storage had several unnecessary (and probably unintended)
1209         dependencies.  This patch replaces many includes of header files with
1210         forward declaration of classes, making some destructors explicit, and
1211         taking some factories out of the header files.
1212
1213         This will allow things like StorageAreaSync to take a StorageAreaImpl*
1214         (as it should) rather than a StorageArea* which previously weren't
1215         possible because the dependencies were such a tangled mess.
1216
1217         * storage/LocalStorageTask.cpp:
1218         (WebCore::LocalStorageTask::~LocalStorageTask):
1219         * storage/LocalStorageTask.h:
1220         * storage/Storage.cpp:
1221         (WebCore::Storage::~Storage):
1222         * storage/Storage.h:
1223         * storage/StorageArea.cpp:
1224         * storage/StorageArea.h:
1225         * storage/StorageAreaImpl.cpp:
1226         * storage/StorageAreaImpl.h:
1227         * storage/StorageAreaSync.cpp:
1228         (WebCore::StorageAreaSync::~StorageAreaSync):
1229         * storage/StorageAreaSync.h:
1230         * storage/StorageEvent.cpp:
1231         (WebCore::StorageEvent::create):
1232         (WebCore::StorageEvent::StorageEvent):
1233         * storage/StorageEvent.h:
1234         * storage/StorageNamespace.h:
1235         * storage/StorageNamespaceImpl.cpp:
1236         * storage/StorageNamespaceImpl.h:
1237         * storage/StorageSyncManager.cpp:
1238         (WebCore::StorageSyncManager::~StorageSyncManager):
1239         * storage/StorageSyncManager.h:
1240
1241
1242 2009-07-14  Adam Treat  <adam.treat@torchmobile.com>
1243
1244         Reviewed by David Hyatt.
1245
1246         https://bugs.webkit.org/show_bug.cgi?id=26983
1247
1248         Check to make sure the view is attached to a frame() in the visibleContentsResized()
1249         method as it can be triggered before the view is attached by Frame::createView(...)
1250         setting various values such as setScrollBarModes(...) for example.  An ASSERT is
1251         triggered when a view is layout before being attached to a frame().
1252
1253         * page/FrameView.cpp:
1254         (WebCore::FrameView::visibleContentsResized):
1255         * page/FrameView.h:
1256
1257 2009-07-14  Pavel Feldman  <pfeldman@chromium.org>
1258
1259         Reviewed by Timothy Hatcher.
1260
1261         WebInspector: show last opened panel when invoking inspector.
1262
1263         https://bugs.webkit.org/show_bug.cgi?id=27263
1264
1265         * inspector/InspectorController.cpp:
1266         (WebCore::InspectorController::InspectorController):
1267         (WebCore::InspectorController::setWindowVisible):
1268         (WebCore::InspectorController::storeLastActivePanel):
1269         (WebCore::InspectorController::specialPanelForJSName):
1270         * inspector/InspectorController.h:
1271         (WebCore::InspectorController::Setting::Setting):
1272         * inspector/InspectorController.idl:
1273         * inspector/front-end/inspector.js:
1274         (WebInspector.set currentPanel):
1275         (WebInspector.loaded):
1276
1277 2009-07-14  Anton Muhin  <antonm@chromium.org>
1278
1279         Reviewed by Dimitri Glazkov.
1280
1281         Speed up access to NodeList length.
1282         https://bugs.webkit.org/show_bug.cgi?id=27264
1283
1284         That's a minimal alternation of the code.
1285
1286         * bindings/v8/custom/V8NodeListCustom.cpp:
1287         (WebCore::NAMED_PROPERTY_GETTER): 1) use AtomicString for comparison, 2) use
1288         v8::Integer::New instead of v8::Number::New.
1289
1290 2009-07-14  Anton Muhin  <antonm@chromium.org>
1291
1292         Reviewed by Dimitri Glazkov.
1293
1294         Do not do unnecessary conversions from v8::Handle<v8::Value> to
1295         v8::Handle<v8::Object> and accompanying changes.
1296         https://bugs.webkit.org/show_bug.cgi?id=26953
1297
1298         Three things:
1299
1300         1) do not cast from v8::Value to v8::Object if unnecessary---casts are cheap,
1301         but are not free (they check for emptiness of handle);
1302         2) inline conversion from wrapper to node;
1303         3) simplify case to an ASSERT.
1304
1305         This is just a refactoring, so no new tests are needed.
1306
1307         * bindings/scripts/CodeGeneratorV8.pm:
1308         * bindings/v8/V8Proxy.cpp:
1309         (WebCore::V8Proxy::evaluateInNewContext):
1310         (WebCore::V8Proxy::convertToSVGPODTypeImpl):
1311         * bindings/v8/V8Proxy.h:
1312         (WebCore::V8Proxy::convertDOMWrapperToNative):
1313         (WebCore::V8Proxy::convertToNativeObject):
1314         (WebCore::V8Proxy::convertToNativeEvent):
1315         * bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp:
1316         (WebCore::toCanvasStyle):
1317         (WebCore::CALLBACK_FUNC_DECL):
1318         * bindings/v8/custom/V8CustomBinding.cpp:
1319         (WebCore::V8Custom::GetTargetFrame):
1320         * bindings/v8/custom/V8DOMWindowCustom.cpp:
1321         (WebCore::CALLBACK_FUNC_DECL):
1322         (WebCore::V8Custom::ClearTimeoutImpl):
1323         (WebCore::NAMED_ACCESS_CHECK):
1324         (WebCore::INDEXED_ACCESS_CHECK):
1325         * bindings/v8/custom/V8DocumentCustom.cpp:
1326         (WebCore::CALLBACK_FUNC_DECL):
1327         * bindings/v8/custom/V8LocationCustom.cpp:
1328         (WebCore::CALLBACK_FUNC_DECL):
1329
1330 2009-07-14  Darin Adler  <darin@apple.com>
1331
1332         Reviewed by Dan Bernstein.
1333
1334         Straight quotes should match fancy quotes in in-page search
1335         https://bugs.webkit.org/show_bug.cgi?id=27217
1336
1337         Tests: fast/text/find-quotes.html
1338
1339         * editing/TextIterator.cpp:
1340         (WebCore::foldQuoteMark): Added.
1341         (WebCore::foldQuoteMarks): Added.
1342         (WebCore::SearchBuffer::SearchBuffer): Call foldQuoteMarks on the target string.
1343         (WebCore::SearchBuffer::append): Call foldQuoteMarks on characters as they are
1344         added to the search buffer.
1345
1346         * platform/text/CharacterNames.h: Added more quotation mark character names.
1347         Sorted character names with the sort tool.
1348
1349 2009-07-13  Pavel Feldman  <pfeldman@chromium.org>
1350
1351         Reviewed by Timothy Hatcher.
1352
1353         WebInspector: handle debugger shortcuts while on source frame or on
1354         script file selector.
1355
1356         https://bugs.webkit.org/show_bug.cgi?id=27224
1357
1358         * inspector/front-end/ScriptsPanel.js:
1359         (WebInspector.ScriptsPanel):
1360         * inspector/front-end/SourceFrame.js:
1361         (WebInspector.SourceFrame.prototype._loaded):
1362
1363 2009-07-13  Sam Weinig  <sam@webkit.org>
1364
1365         Reviewed by Darin Adler.
1366
1367         Use standard HashCountedSet instead of a hand rolled one
1368         in HTMLDocument.
1369
1370         * html/HTMLDocument.cpp:
1371         (WebCore::addItemToMap):
1372         (WebCore::removeItemFromMap):
1373         * html/HTMLDocument.h:
1374
1375 2009-07-13  Erik Arvidsson  <arv@chromium.org>
1376
1377         Reviewed by Darin Adler and Maciej Stachowiak.
1378
1379         Implement HTML5 draggable
1380         https://bugs.webkit.org/show_bug.cgi?id=26262
1381
1382         This adds support for the HTML5 draggable attribute and its DOM binding. It maps the draggable property
1383         to the CSS properties -webkit-user-drag and -webkit-user-select respectively.
1384
1385         Spec: http://www.whatwg.org/specs/web-apps/current-work/multipage/editing.html#the-draggable-attribute
1386
1387         Test: fast/html/draggable.html
1388
1389         * css/html.css:
1390         * html/HTMLAnchorElement.cpp:
1391         (WebCore::HTMLAnchorElement::draggable):
1392         * html/HTMLAnchorElement.h:
1393         * html/HTMLAttributeNames.in:
1394         * html/HTMLElement.cpp:
1395         (WebCore::HTMLElement::draggable):
1396         (WebCore::HTMLElement::setDraggable):
1397         * html/HTMLElement.h:
1398         * html/HTMLElement.idl:
1399         * html/HTMLImageElement.cpp:
1400         (WebCore::HTMLImageElement::draggable):
1401         * html/HTMLImageElement.h:
1402
1403 2009-07-13  Simon Fraser  <simon.fraser@apple.com>
1404
1405         Reviewed by Dan Bernstein.
1406
1407         Image rendered as layer contents looks different from image rendered via CG.
1408         <rdar://problem/7048830> 
1409         
1410         Fix a visible color profile difference between between images rendered via Core Graphics
1411         and those rendered via a compositing layer, by assigning the GenericRGB profile to
1412         untagged images (which come through as having the DeviceRGB profile) when they are set
1413         as layer contents.
1414
1415         Test: compositing/color-matching/image-color-matching.html
1416
1417         * platform/graphics/mac/GraphicsLayerCA.mm:
1418         (WebCore::GraphicsLayerCA::setContentsToImage):
1419
1420 2009-07-13  Darin Adler  <darin@apple.com>
1421
1422         Reviewed by Oliver Hunt.
1423
1424         https://bugs.webkit.org/show_bug.cgi?id=27220
1425         Assertion failure in createSearcher() (usearch_open() status is U_USING_DEFAULT_WARNING)
1426
1427         * editing/TextIterator.cpp:
1428         (WebCore::createSearcher): Add U_USING_DEFAULT_WARNING as a possible status code
1429         in the assertion. Affects only the assertion.
1430
1431 2009-07-13  Alexey Proskuryakov  <ap@webkit.org>
1432
1433         Reviewed by Darin Adler.
1434
1435         https://bugs.webkit.org/show_bug.cgi?id=26925
1436         <rdar://problem/7027850> URL Fragment Breaks Application Cache Loads
1437
1438         Test: http/tests/appcache/main-resource-hash.html
1439
1440         * loader/appcache/ApplicationCache.cpp:
1441         (WebCore::ApplicationCache::resourceForURL):
1442         (WebCore::ApplicationCache::resourceForRequest):
1443         * loader/appcache/ApplicationCacheGroup.cpp:
1444         (WebCore::ApplicationCacheGroup::cacheForMainRequest):
1445         (WebCore::ApplicationCacheGroup::fallbackCacheForMainRequest):
1446         (WebCore::ApplicationCacheGroup::selectCache):
1447         (WebCore::ApplicationCacheGroup::finishedLoadingMainResource):
1448         (WebCore::ApplicationCacheGroup::didReceiveResponse):
1449         (WebCore::ApplicationCacheGroup::didFail):
1450         (WebCore::ApplicationCacheGroup::addEntry):
1451         Remove URL fragment at appcache code borders.
1452
1453         * loader/appcache/ApplicationCacheResource.h:
1454         (WebCore::ApplicationCacheResource::create):
1455         * loader/appcache/ApplicationCacheStorage.cpp:
1456         (WebCore::ApplicationCacheStorage::findOrCreateCacheGroup):
1457         (WebCore::ApplicationCacheStorage::cacheGroupForURL):
1458         (WebCore::ApplicationCacheStorage::fallbackCacheGroupForURL):
1459         Assert that there is no URL fragment in URL at key points in appcache code.
1460
1461 2009-07-13  Darin Adler  <darin@apple.com>
1462
1463         Reviewed by Dan Bernstein.
1464
1465         https://bugs.webkit.org/show_bug.cgi?id=27166
1466         rdar://problem/7015857
1467         Find for strings composed entirely of spaces doesn't work
1468
1469         Test: fast/text/find-spaces.html
1470
1471         * editing/TextIterator.cpp:
1472         (WebCore::findPlainText): Removed unneeded special case.
1473         The empty string case already works correctly.
1474
1475 2009-07-13  Anders Carlsson  <andersca@apple.com>
1476
1477         Reviewed by Kevin Decker.
1478
1479         Remove NPPVpluginPrivateModeBool, it was removed from the spec.
1480         
1481         * bridge/npapi.h:
1482
1483 2009-07-13  Feng Qian  <feng@chromium.org>
1484
1485         Reviewed by Dimitri Glazkov.
1486
1487         Fix for https://bugs.webkit.org/show_bug.cgi?id=27237
1488
1489         Make V8DOMMap.h compiling with gcc option -Werror=non=virtual-dtor.  
1490
1491         * bindings/v8/V8DOMMap.h:
1492         (WebCore::WeakReferenceMap::WeakReferenceMap):
1493         (WebCore::WeakReferenceMap::~WeakReferenceMap):
1494
1495 2009-07-13  Dimitri Glazkov  <dglazkov@chromium.org>
1496
1497         Reviewed by Darin Fisher.
1498
1499         Remove an accidental add of bidi.(cpp|h) to WebCore.gypi.
1500
1501         * WebCore.gypi: Removed bidi.cpp and bidi.h
1502
1503 2009-07-13  Dimitri Glazkov  <dglazkov@chromium.org>
1504
1505         Reviewed by Darin Fisher.
1506
1507         Update WebCore.gyp in preparation to hooking it up.
1508
1509         * WebCore.gypi: Added files that were mid-stream while switching over.
1510
1511 2009-07-13  Dmitry Titov  <dimich@chromium.org>
1512
1513         Not reviewed, another small fix for Chromium build.
1514
1515         * bindings/v8/ScriptController.cpp:
1516         (WebCore::ScriptController::evaluate):
1517
1518 2009-07-13  Dmitry Titov  <dimich@chromium.org>
1519
1520         Not reviewed, fix Chromium build bustage.
1521
1522         * bindings/v8/ScriptController.cpp:
1523         (WebCore::ScriptController::evaluate):
1524         * bindings/v8/V8Proxy.cpp:
1525         (WebCore::JavaScriptConsoleMessage::addToPage):
1526         * bindings/v8/WorkerContextExecutionProxy.cpp:
1527         (WebCore::handleConsoleMessage):
1528
1529 2009-07-13  Sam Weinig  <sam@webkit.org>
1530
1531         Reviewed by Darin Adler.
1532
1533         Fix for https://bugs.webkit.org/show_bug.cgi?id=27234
1534         <rdar://problem/7054356>
1535
1536         Add null page check in HTMLDocument::hasFocus.
1537
1538         Test: fast/dom/HTMLDocument/hasFocus-frameless-crash.html
1539
1540         * html/HTMLDocument.cpp:
1541         (WebCore::HTMLDocument::hasFocus): Add page null check.
1542         (WebCore::HTMLDocument::createTokenizer): Cleanup page null check.
1543
1544 2009-07-13  Dan Bernstein  <mitz@apple.com>
1545
1546         Reviewed by Darin Adler.
1547
1548         Disable continuous spell checking in the inspector
1549         https://bugs.webkit.org/show_bug.cgi?id=27131
1550
1551         * inspector/front-end/inspector.html: Added spellcheck="false" to the
1552             main-panels and console-prompt containers.
1553
1554 2009-07-13  Adam Langley  <agl@google.com>
1555
1556         Reviewed by Eric Seidel.
1557
1558         Chromium Linux: fix assertion when rendering google.com.kh
1559
1560         https://bugs.webkit.org/show_bug.cgi?id=26924
1561
1562         Some shapers (i.e. Khmer) will produce cluster logs which report that
1563         /no/ code points contributed to certain glyphs. Because of this, we
1564         take any code point which contributed to the glyph in question, or any
1565         subsequent glyph.  If we run off the end, then we take the last code
1566         point.
1567
1568         Added LayoutTests/fast/text/international/khmar-selection.html
1569
1570         * platform/graphics/chromium/FontLinux.cpp:
1571         (WebCore::Font::offsetForPositionForComplexText):
1572
1573 2009-07-13  Dan Bernstein  <mitz@apple.com>
1574
1575         Reviewed by Darin Adler.
1576
1577         spellcheck="false" is ignored
1578         <rdar://problem/7054177>
1579
1580         * editing/Editor.cpp:
1581         (WebCore::markMisspellingsOrBadGrammar): Moved code to check the
1582             spellcheck attribute from here...
1583         (WebCore::Editor::spellCheckingEnabledInFocusedNode): ...to here.
1584         (WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges): Bail out
1585             if spell chcking is disabled by the spellcheck attribute.
1586         * editing/Editor.h:
1587
1588 2009-07-13  Brent Fulgham  <bfulgham@webkit.org>
1589
1590         Reviewed by Adam Roben.
1591
1592         Add new configuration flag for redistributable Windows build.
1593         https://bugs.webkit.org/show_bug.cgi=27087
1594         
1595         * WebCore.vcproj/WebCore.vcproj: Add new WinCairo.vsprops to
1596           Debug_Cairo and Release_Cairo builds.
1597         * config.h: Check for presence of WIN_CAIRO and select appropriate
1598           configuration.  Defaults to standard Apple build.
1599
1600 2009-07-13  Peter Kasting  <pkasting@google.com>
1601
1602         https://bugs.webkit.org/show_bug.cgi?id=19562
1603         Back out previous patch for this bug (too many problems).
1604
1605         * DerivedSources.cpp:
1606         * DerivedSources.make:
1607         * GNUmakefile.am:
1608         * WebCore.gypi:
1609         * WebCore.pro:
1610         * WebCore.vcproj/WebCore.vcproj:
1611         * WebCore.xcodeproj/project.pbxproj:
1612         * WebCoreSources.bkl:
1613         * html/HTMLButtonElement.idl:
1614         * html/HTMLFieldSetElement.idl:
1615         * html/HTMLFormControlElement.cpp:
1616         * html/HTMLFormControlElement.h:
1617         (WebCore::HTMLFormControlElement::form):
1618         * html/HTMLInputElement.idl:
1619         * html/HTMLSelectElement.idl:
1620         * html/HTMLTextAreaElement.idl:
1621         * html/ValidityState.cpp: Removed.
1622         * html/ValidityState.h: Removed.
1623         * html/ValidityState.idl: Removed.
1624
1625 2009-07-13  Nate Chapin  <japhet@chromium.org>
1626
1627         Reviewed by Dimitri Glazkov.
1628
1629         Add HTMLAllCollection to WebCore.gypi.
1630
1631         https://bugs.webkit.org/show_bug.cgi?id=27223
1632
1633         * WebCore.gypi: Add HTMLAllCollection.
1634
1635 2009-07-13  Dimitri Glazkov  <dglazkov@chromium.org>
1636
1637         Reviewed by Darin Fisher.
1638
1639         [V8] Add a missing check for constructor call in WebKitCSSMatrixConstructor.
1640         https://bugs.webkit.org/show_bug.cgi?id=27218
1641
1642         Test: fast/css/matrix-as-function-crash.html
1643
1644         * bindings/v8/custom/V8WebKitCSSMatrixConstructor.cpp:
1645         (WebCore::CALLBACK_FUNC_DECL): Added a check for constructor call.
1646
1647 2009-07-13  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
1648
1649         Unreviewed make dist build fix.
1650
1651         * GNUmakefile.am:
1652
1653 2009-07-13  Cédric Luthi  <cedric.luthi@gmail.com>
1654
1655         Reviewed by Tor Arne Vestbø.
1656
1657         Fix NPWindow clip rect in PluginViewMac
1658
1659         The rect should be in window-coordinates. This bug can be observed
1660         with Flash 10 here: http://www.permadi.com/tutorial/cursorTracker/
1661
1662         * plugins/mac/PluginViewMac.cpp:
1663
1664 2009-07-13  Simon Hausmann  <hausmann@webkit.org>
1665
1666         Reviewed by Ariya Hidayat.
1667
1668         Fix Qt implementation of WebCore::directoryName to return the absolute
1669         directory name instead of the base file name.
1670
1671         * platform/qt/FileSystemQt.cpp:
1672         (WebCore::directoryName):
1673
1674 2009-07-13  Simon Hausmann  <hausmann@webkit.org>
1675
1676         Reviewed by Ariya Hidayat.
1677
1678         Fix WebCore::Path::isEmpty() for the Qt port to return true
1679         if there is no element in the path.
1680
1681         QPainterPath::isEmpty() returns also true if there is one single
1682         MoveTo element inside, which makes sense but doesn't patch Webcore's
1683         is-empty definition.
1684
1685         * platform/graphics/qt/PathQt.cpp:
1686         (WebCore::Path::isEmpty): Use elementCount() == 0.
1687
1688 2009-07-13  Albert J. Wong  <ajwong@chromium.org>
1689
1690         Reviewed by Dimitri Glazkov.
1691
1692         Upstream fixes to NPV8Object.cpp that make ~30 layout tests pass.
1693         https://bugs.webkit.org/show_bug.cgi?id=27127
1694
1695         There were a number of bugs introduced during the last upstreaming
1696         effort that broke around 30 layout tests.  This fixes those bugs.
1697         It also has compile fixes to match the recent cutting apart of
1698         V8Proxy.
1699
1700         * bindings/v8/NPV8Object.cpp:
1701         (freeV8NPObject):
1702         (npCreateV8ScriptObject):
1703         (NPN_Invoke):
1704         (NPN_InvokeDefault):
1705         (NPN_EvaluateHelper):
1706         (NPN_SetException):
1707         (NPN_Construct):
1708
1709 2009-07-13  Mads Ager  <ager@chromium.org>
1710
1711         Reviewed by Adam Barth.
1712
1713         Fix memory leak in the V8 binding layer. 
1714         https://bugs.webkit.org/show_bug.cgi?id=27163
1715
1716         Reinitializing the context is not necessary when clearing the proxy for navigation
1717         and it will lead us to hold on to an empty context for each frame.
1718
1719         Test for empty context instead of empty global object handle when
1720         updating the document for a context.
1721
1722         * bindings/v8/V8Proxy.cpp:
1723         (WebCore::V8Proxy::clearForNavigation):
1724         (WebCore::V8Proxy::updateDocument):
1725
1726 2009-07-13  John Gregg  <johnnyg@google.com>
1727
1728         Reviewed by David Levin.
1729
1730         Correct the logic to determine if a V8 callback returns a value.
1731         https://bugs.webkit.org/show_bug.cgi?id=27155
1732
1733         * bindings/v8/custom/V8CustomVoidCallback.cpp:
1734         (WebCore::invokeCallback):
1735         - Don't crash if result.IsEmpty().
1736
1737 2009-07-13  Drew Wilson  <atwilson@google.com>
1738
1739         Reviewed by David Levin.
1740
1741         Add ENABLE(SHARED_WORKERS) flag and define SharedWorker APIs
1742         https://bugs.webkit.org/show_bug.cgi?id=26932
1743
1744         Initial IDL definition and bindings for SharedWorkers.
1745
1746         * Configurations/FeatureDefines.xcconfig:
1747         Added new files for SharedWorker support.
1748         * DerivedSources.make:
1749         Added new files for SharedWorker support.
1750         * GNUmakefile.am:
1751         Added new files for SharedWorker support.
1752         * WebCore.gypi:
1753         Added new files for SharedWorker support.
1754         * WebCore.pro:
1755         Added new files for SharedWorker support.
1756         * WebCore.xcodeproj/project.pbxproj:
1757         Added new files for SharedWorker support.
1758         * bindings/js/JSAbstractWorkerCustom.cpp: Added.
1759         (WebCore::JSAbstractWorker::mark):
1760         Custom mark handler that marks the event listeners.
1761         (WebCore::JSAbstractWorker::addEventListener):
1762         (WebCore::JSAbstractWorker::removeEventListener):
1763         (WebCore::JSAbstractWorker::toJS):
1764         Custom toJS handler which differentiates between various subclasses.
1765         * bindings/js/JSDOMWindowCustom.cpp:
1766         (WebCore::JSDOMWindow::sharedWorker):
1767         SharedWorker constructor (only enabled when SHARED_WORKERS is
1768         enabled).
1769         * bindings/js/JSEventTarget.cpp:
1770         (WebCore::toJS):
1771         (WebCore::toEventTarget):
1772         Added support for converting to/from SharedWorkers.
1773         * bindings/js/JSSharedWorkerConstructor.cpp: Added.
1774         (WebCore::JSSharedWorkerConstructor::JSSharedWorkerConstructor):
1775         (WebCore::constructSharedWorker):
1776         (WebCore::JSSharedWorkerConstructor::getConstructData):
1777         * bindings/js/JSSharedWorkerConstructor.h: Added.
1778         (WebCore::JSSharedWorkerConstructor::classInfo):
1779         * bindings/js/JSSharedWorkerCustom.cpp: Added.
1780         (WebCore::JSSharedWorker::mark):
1781         Custom mark function that marks the internal MessagePort.
1782         * bindings/v8/DOMObjectsInclude.h:
1783         Updated to include new header files.
1784         * bindings/v8/V8Index.cpp:
1785         * bindings/v8/V8Index.h:
1786         * bindings/v8/custom/V8AbstractWorkerCustom.cpp: Added.
1787         (WebCore::getEventListener):
1788         (WebCore::ACCESSOR_GETTER):
1789         (WebCore::ACCESSOR_SETTER):
1790         (WebCore::CALLBACK_FUNC_DECL):
1791         V8 handlers for add/removeEventListener().
1792         * bindings/v8/custom/V8CustomBinding.h:
1793         * bindings/v8/custom/V8SharedWorkerCustom.cpp: Added.
1794         (WebCore::CALLBACK_FUNC_DECL):
1795         Custom constructor for SharedWorker.
1796         * dom/EventTarget.cpp:
1797         (WebCore::EventTarget::toSharedWorker):
1798         * dom/EventTarget.h:
1799         * page/DOMWindow.idl:
1800         * workers/AbstractWorker.cpp: Added.
1801         (WebCore::AbstractWorker::AbstractWorker):
1802         Common base class for SharedWorker and (soon) Worker. The functions below were copied from Worker.cpp.
1803         This is the first step in refactoring Worker to derive from AbstractWorker to enable code sharing.
1804         (WebCore::AbstractWorker::~AbstractWorker):
1805         (WebCore::AbstractWorker::addEventListener):
1806         (WebCore::AbstractWorker::removeEventListener):
1807         (WebCore::AbstractWorker::dispatchEvent):
1808         (WebCore::AbstractWorker::dispatchLoadErrorEvent):
1809         (WebCore::AbstractWorker::dispatchScriptErrorEvent):
1810         * workers/AbstractWorker.h: Added.
1811         Definitions of functionality shared by Worker.h and SharedWorker.h. In a future patch, Worker will derive from AbstractWorker.
1812         (WebCore::AbstractWorker::scriptExecutionContext):
1813         (WebCore::AbstractWorker::setOnerror):
1814         (WebCore::AbstractWorker::onerror):
1815         (WebCore::AbstractWorker::eventListeners):
1816         (WebCore::AbstractWorker::refEventTarget):
1817         (WebCore::AbstractWorker::derefEventTarget):
1818         * workers/AbstractWorker.idl: Added.
1819         * workers/SharedWorker.cpp: Added.
1820         (WebCore::SharedWorker::SharedWorker):
1821         (WebCore::SharedWorker::~SharedWorker):
1822         * workers/SharedWorker.h: Added.
1823         (WebCore::SharedWorker::create):
1824         (WebCore::SharedWorker::port):
1825         (WebCore::SharedWorker::toSharedWorker):
1826         * workers/SharedWorker.idl: Added.
1827
1828 2009-07-13  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
1829
1830         Reviewed by Simon Hausmann.
1831
1832         [Qt] Cleanup - Remove prf install target
1833         https://bugs.webkit.org/show_bug.cgi?id=27191
1834
1835         qtwebkit.prf has been removed; this cleans up the related
1836         install target as well.
1837
1838         * WebCore.pro: Remove prf install target
1839
1840 2009-07-12  Adam Barth  <abarth@webkit.org>
1841
1842         Reviewed by Oliver Hunt.
1843
1844         Facebook Chat is broken due to XSS auditor
1845         https://bugs.webkit.org/show_bug.cgi?id=27179
1846
1847         Instead of just using the script's URL as to detect an XSS attack, we
1848         now use a bit of context before the URL.  In particular, we use the
1849         bytes from the beginning of the attribute name to the end of the
1850         attribute value.  In virtually all injection attacks, the attacker
1851         would need to supply the attribute name as well as the attribute value.
1852         However, in the Facebook false positive, the attribute name is not
1853         present in the URL.
1854
1855         Tests: http/tests/security/xssAuditor/script-tag-src-redirect-safe.html
1856                http/tests/security/xssAuditor/script-tag-with-source-double-quote.html
1857                http/tests/security/xssAuditor/script-tag-with-source-no-quote.html
1858
1859         * html/HTMLTokenizer.cpp:
1860         (WebCore::HTMLTokenizer::parseTag):
1861         * html/HTMLTokenizer.h:
1862         * page/XSSAuditor.cpp:
1863         (WebCore::XSSAuditor::canLoadExternalScriptFromSrc):
1864         * page/XSSAuditor.h:
1865
1866 2009-07-12  Keishi Hattori  <casey.hattori@gmail.com>
1867
1868         Reviewed by Timothy Hatcher.
1869
1870         Refactor ConsoleMessage to add MessageType attribute.
1871         https://bugs.webkit.org/show_bug.cgi?id=20625
1872
1873         * bindings/js/JSCustomXPathNSResolver.cpp:
1874         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
1875         * bindings/js/JSDOMWindowBase.cpp:
1876         (WebCore::JSDOMWindowBase::printErrorMessage):
1877         * dom/Document.cpp:
1878         (WebCore::Document::reportException):
1879         (WebCore::Document::addMessage):
1880         * dom/Document.h:
1881         * dom/ScriptExecutionContext.h:
1882         * html/HTMLParser.cpp:
1883         (WebCore::HTMLParser::reportErrorToConsole):
1884         * inspector/ConsoleMessage.cpp:
1885         (WebCore::ConsoleMessage::ConsoleMessage):
1886         (WebCore::ConsoleMessage::addToConsole):
1887         (WebCore::ConsoleMessage::isEqual):
1888         * inspector/ConsoleMessage.h:
1889         * inspector/InspectorController.cpp:
1890         (WebCore::InspectorController::addMessageToConsole):
1891         (WebCore::InspectorController::startGroup):
1892         (WebCore::InspectorController::endGroup):
1893         (WebCore::InspectorController::addProfileFinishedMessageToConsole):
1894         (WebCore::InspectorController::addStartProfilingMessageToConsole):
1895         (WebCore::InspectorController::count):
1896         * inspector/InspectorController.h:
1897         * inspector/front-end/Console.js:
1898         (WebInspector.Console.prototype.addMessage):
1899         (WebInspector.ConsoleMessage): Added type property.
1900         (WebInspector.ConsoleMessage.prototype.toMessageElement):
1901         (WebInspector.ConsoleMessage.prototype.toString):
1902         (WebInspector.ConsoleMessage.prototype.isEqual):
1903         (WebInspector.ConsoleCommandResult):
1904         (WebInspector.ConsoleGroup.prototype.addMessage):
1905         (WebInspector.ConsoleGroup.prototype._titleClicked):
1906         * inspector/front-end/Resource.js:
1907         (WebInspector.Resource.prototype._addTip):
1908         (WebInspector.Resource.prototype._checkWarning):
1909         * inspector/front-end/inspector.css: Changed ".console-group-title-level" to ".console-group-title"
1910         * inspector/front-end/inspector.js:
1911         (WebInspector.addMessageToConsole):
1912         * loader/DocLoader.cpp:
1913         (WebCore::DocLoader::printAccessDeniedMessage):
1914         * loader/EmptyClients.h:
1915         (WebCore::EmptyChromeClient::addMessageToConsole):
1916         * loader/FrameLoader.cpp:
1917         (WebCore::FrameLoader::reportLocalLoadFailed):
1918         (WebCore::FrameLoader::shouldAllowNavigation):
1919         * page/ChromeClient.h:
1920         * page/Console.cpp:
1921         (WebCore::printMessageSourceAndLevelPrefix):
1922         (WebCore::Console::addMessage):
1923         (WebCore::Console::error):
1924         (WebCore::Console::log):
1925         (WebCore::Console::dir):
1926         (WebCore::Console::trace):
1927         (WebCore::Console::assertCondition):
1928         (WebCore::Console::timeEnd):
1929         (WebCore::Console::warn):
1930         * page/Console.h: Added MessageType enum.
1931         (WebCore::):
1932         * page/DOMWindow.cpp:
1933         (WebCore::DOMWindow::postMessageTimerFired):
1934         * page/XSSAuditor.cpp:
1935         (WebCore::XSSAuditor::canEvaluate):
1936         (WebCore::XSSAuditor::canLoadExternalScriptFromSrc):
1937         (WebCore::XSSAuditor::canLoadObject):
1938         * svg/SVGDocumentExtensions.cpp:
1939         (WebCore::SVGDocumentExtensions::reportWarning):
1940         (WebCore::SVGDocumentExtensions::reportError):
1941         * wml/WMLErrorHandling.cpp:
1942         (WebCore::reportWMLError):
1943         * workers/GenericWorkerTask.h: Added GenericWorkerTask8 for the extra argument.
1944         (WebCore::GenericWorkerTask8::create):
1945         (WebCore::GenericWorkerTask8::GenericWorkerTask8):
1946         (WebCore::GenericWorkerTask8::performTask):
1947         (WebCore::createCallbackTask):
1948         * workers/WorkerContext.cpp:
1949         (WebCore::WorkerContext::addMessage):
1950         (WebCore::WorkerContext::importScripts):
1951         * workers/WorkerContext.h:
1952         * workers/WorkerMessagingProxy.cpp:
1953         (WebCore::postConsoleMessageTask):
1954         (WebCore::WorkerMessagingProxy::postConsoleMessageToWorkerObject):
1955         * workers/WorkerMessagingProxy.h:
1956         * workers/WorkerObjectProxy.h:
1957         * xml/XMLHttpRequest.cpp:
1958         (WebCore::reportUnsafeUsage):
1959         (WebCore::XMLHttpRequest::didFinishLoading):
1960         * xml/XSLTProcessor.cpp:
1961         (WebCore::XSLTProcessor::parseErrorFunc):
1962
1963 2009-07-12  Nate Chapin  <japhet@chromium.org>
1964
1965         Reviewed by Dimitri Glazkov.
1966
1967         Upstream UndetectableHTMLCollection.idl as HTMLAllCollection.idl.
1968
1969         https://bugs.webkit.org/show_bug.cgi?id=27132
1970
1971         * bindings/scripts/CodeGeneratorV8.pm:
1972         * bindings/v8/DOMObjectsInclude.h:
1973         * bindings/v8/DerivedSourcesAllInOne.cpp:
1974         * bindings/v8/V8DOMWrapper.cpp:
1975         (WebCore::V8DOMWrapper::getTemplate):
1976         (WebCore::V8DOMWrapper::instantiateV8Object):
1977         * bindings/v8/V8Index.cpp:
1978         * bindings/v8/V8Index.h:
1979         * dom/HTMLAllCollection.idl: Added.
1980
1981 2009-07-12  Joseph Pecoraro  <joepeck02@gmail.com>
1982
1983         Reviewed by Maciej Stachowiak.
1984
1985         Inspector: Duplicate Computation in Autocompletion
1986         https://bugs.webkit.org/show_bug.cgi?id=26778
1987
1988         * inspector/front-end/TextPrompt.js:
1989         (WebInspector.TextPrompt.prototype._completionsReady):
1990
1991 2009-07-12  Dan Bernstein  <mitz@apple.com>
1992
1993         Reviewed by Maciej Stachowiak.
1994
1995         https://bugs.webkit.org/show_bug.cgi?id=27196
1996         Rename bidi.cpp to RenderBlockLineLayout.cpp and remove bidi.h
1997
1998         * GNUmakefile.am: Updated.
1999         * WebCore.gypi: Updated.
2000         * WebCore.pro: Updated.
2001         * WebCore.vcproj/WebCore.vcproj: Updated.
2002         * WebCore.xcodeproj/project.pbxproj: Updated.
2003         * WebCoreSources.bkl: Updated.
2004         * rendering/RenderBlock.h: Removed unnecessary forward declaration and
2005             updated comments.
2006         * rendering/RenderBlockLineLayout.cpp: Copied from WebCore/rendering/bidi.cpp.
2007             Removed unnecessary #include statements.
2008         (WebCore::BidiRun::BidiRun): Moved here from bidi.h.
2009         (WebCore::RenderBlock::layoutInlineChildren): Removed outdated comment.
2010         * rendering/bidi.cpp: Removed.
2011         * rendering/bidi.h: Removed.
2012
2013 2009-07-12  Dan Bernstein  <mitz@apple.com>
2014
2015         - Windows build fix
2016
2017         * platform/graphics/cg/PDFDocumentImage.cpp:
2018         (WebCore::PDFDocumentImage::dataChanged):
2019
2020 2009-07-12  Dan Bernstein  <mitz@apple.com>
2021
2022         Reviewed by Sam Weinig.
2023
2024         - Image cleanup
2025
2026         * platform/graphics/BitmapImage.cpp:
2027         (WebCore::BitmapImage::destroyDecodedData): Use the data() accessor
2028         instead of the m_data member.
2029         (WebCore::BitmapImage::dataChanged): Ditto.
2030         * platform/graphics/Image.h: Re-ordered #includes and class
2031         declarations. Removed the drawPatternCallback() declaration. Made member
2032         variables private.
2033         * platform/graphics/cg/ImageCG.cpp:
2034         (WebCore::drawPatternCallback): Changed this from a member function to a
2035         static function.
2036         * platform/graphics/cg/PDFDocumentImage.cpp:
2037         (WebCore::PDFDocumentImage::dataChanged): Use the data() accessor
2038         instead of the m_data member.
2039         * svg/graphics/SVGImage.cpp:
2040         (WebCore::SVGImage::dataChanged): Ditto.
2041
2042 2009-07-12  Daniel Bates  <dbates@intudata.com>
2043
2044         Reviewed by Darin Adler.
2045
2046         https://bugs.webkit.org/show_bug.cgi?id=27189
2047         
2048         Fixes insufficient check in XSSAuditor::canSetBaseElementURL that caused 
2049         XSSAuditor to incorrectly block HTML Base elements whose base path coincided 
2050         with the URL of the page.
2051
2052         Test: http/tests/security/xssAuditor/base-href-safe3.html
2053
2054         * page/XSSAuditor.cpp:
2055         (WebCore::XSSAuditor::canSetBaseElementURL): Changed conditional to only call 
2056         XSSAuditor::findInRequest() if the host in the page URL disagrees with the host 
2057         in the base element URL.
2058
2059 2009-07-12  Darin Adler  <darin@apple.com>
2060
2061         Reviewed by Dan Bernstein.
2062
2063         Text searching with ICU should take the user's default locale into account
2064         https://bugs.webkit.org/show_bug.cgi?id=27184
2065         rdar://problem/6812121
2066
2067         No simple way to test this since it's dependent on user locale.
2068         After this, the user's default locale is used only on Mac.
2069
2070         * editing/TextIterator.cpp:
2071         (WebCore::createSearcher): Pass result of the currentSearchLocaleID
2072         function as the locale.
2073
2074         * platform/text/TextBreakIteratorInternalICU.h: Added declaration of
2075         currentSearchLocaleID function.
2076
2077         * platform/text/android/TextBreakIteratorInternalICU.cpp:
2078         (WebCore::currentSearchLocaleID): Added. Returns the empty string.
2079         * platform/text/chromium/TextBreakIteratorInternalICUChromium.cpp:
2080         (WebCore::currentSearchLocaleID): Ditto.
2081         * platform/text/gtk/TextBreakIteratorInternalICUGtk.cpp:
2082         (WebCore::currentSearchLocaleID): Ditto.
2083
2084         * platform/text/mac/TextBreakIteratorInternalICUMac.mm:
2085         (WebCore::textBreakLocalePreference): Added. Returns the value of
2086         the AppleTextBreakLocale preference.
2087         (WebCore::topLanguagePreference): Added. Returns the value of the
2088         first item in the AppleLanguages preference.
2089         (WebCore::canonicalLanguageIdentifier): Added. Cover for the
2090         CFLocaleCreateCanonicalLanguageIdentifierFromString function.
2091         (WebCore::getLocale): Added. Transfers the locale from a CFStringRef
2092         into a buffer.
2093         (WebCore::getSearchLocale): Added. Calls topLanguagePreference,
2094         canonicalLanguageIdentifier, and getLocale.
2095         (WebCore::currentSearchLocaleID): Added. Calls getSearchLocale once.
2096         (WebCore::getTextBreakLocale): Changed to call
2097         textBreakLocalePreference, topLanguagePreference,
2098         canonicalLanguageIdentifier, and getLocale.
2099
2100         * platform/text/win/TextBreakIteratorInternalICUWin.cpp:
2101         (WebCore::currentSearchLocaleID): Added. Returns the empty string.
2102         * platform/wx/TemporaryLinkStubs.cpp:
2103         (WebCore::currentSearchLocaleID): Ditto.
2104
2105 2009-07-12  Xan Lopez  <xlopez@igalia.com>
2106
2107         Reviewed by Gustavo Noronha.
2108
2109         https://bugs.webkit.org/show_bug.cgi?id=25415
2110         [GTK][ATK] Please implement support for get_text_at_offset
2111
2112         Create a PangoLayout that properly represents the visual
2113         appearance of the text in the web page so that the line boundary
2114         modes of getText{At,Before,After}Offset work correctly.
2115
2116         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
2117         (UTF16ToUTF8):
2118         (g_substr):
2119         (convertUniCharToUTF8):
2120         (getPangoLayoutForAtk):
2121
2122 2009-07-11  Oliver Hunt  <oliver@apple.com>
2123
2124         Reviewed by Simon Fraser.
2125
2126         Bug 27187 - Match Gecko behaviour for canvas path mutation APIs on an empty path
2127         <https://bugs.webkit.org/show_bug.cgi?id=27187>
2128
2129         Simple API change, check for the empty path and add appropriate point if necessary.
2130
2131         Test: fast/canvas/canvas-modify-emptyPath.html
2132
2133         * Info.plist:
2134         * WebCore.xcodeproj/project.pbxproj:
2135         * html/CanvasRenderingContext2D.cpp:
2136         (WebCore::CanvasRenderingContext2D::lineTo):
2137         (WebCore::CanvasRenderingContext2D::quadraticCurveTo):
2138         (WebCore::CanvasRenderingContext2D::bezierCurveTo):
2139
2140 2009-07-11  Eric Carlson  <eric.carlson@apple.com>
2141
2142         Reviewed by Antti Koivisto.
2143
2144         HTMLMediaElement.canPlayType "maybe" and "probably" reversed
2145         https://bugs.webkit.org/show_bug.cgi?id=27186
2146
2147         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
2148         (WebCore::MediaPlayerPrivate::supportsType):
2149             Return "probably" if type has codecs parameter.
2150
2151         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
2152         (WebCore::MediaPlayerPrivate::supportsType):
2153             Ditto.
2154
2155         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
2156         (WebCore::MediaPlayerPrivate::supportsType):
2157             Ditto.
2158
2159 2009-07-11  Brady Eidson  <beidson@apple.com>
2160
2161         Reviewed by Mark Rowe.
2162
2163         A worker-thread inspired follow-up for:
2164         https://bugs.webkit.org/show_bug.cgi?id=26496 and <rdar://problem/7046520>
2165         REGRESSION: XHR stream connection blocks iFrame loading and resource downloading
2166
2167         * xml/XMLHttpRequest.cpp:
2168         (WebCore::XMLHttpRequest::loadRequestAsynchronously): Don't perform the XHR compensation when the XHR
2169           is running on a worker thread. Accessing the global Cache data structures from a non-main thread is
2170           not currently supported.
2171
2172 2009-07-11  Simon Fraser  <simon.fraser@apple.com>
2173
2174         Enable support for accelerated compositing and 3d transforms on Leopard.
2175         <https://bugs.webkit.org/show_bug.cgi?id=20166>
2176         <rdar://problem/6120614>
2177
2178         Reviewed by Oliver Hunt.
2179
2180         * Configurations/FeatureDefines.xcconfig:
2181
2182 2009-07-11  Simon Hausmann  <hausmann@webkit.org>
2183
2184         Fix the Qt build after r45724.
2185
2186         * bridge/qt/qt_instance.cpp:
2187         (JSC::Bindings::QtRuntimeObjectImp::QtRuntimeObjectImp):
2188         * bridge/qt/qt_runtime.cpp:
2189         (JSC::Bindings::QtRuntimeMethod::QtRuntimeMethod):
2190
2191 2009-07-10  Daniel Bates  <dbates@intudata.com>
2192
2193         Reviewed by Adam Barth.
2194
2195         https://bugs.webkit.org/show_bug.cgi?id=26921
2196
2197         Implements support for HTML entities, so XSSAuditor can protect against attacks
2198         encoded with HTML entities.
2199
2200         Tests: http/tests/security/xssAuditor/inline-event-HTML-entities.html
2201                http/tests/security/xssAuditor/javascript-link-HTML-entities-control-char.html
2202                http/tests/security/xssAuditor/javascript-link-HTML-entities-named.html
2203                http/tests/security/xssAuditor/javascript-link-HTML-entities-null-char.html
2204                http/tests/security/xssAuditor/javascript-link-HTML-entities.html
2205                http/tests/security/xssAuditor/link-onclick-entities.html
2206                http/tests/security/xssAuditor/script-tag-entities.html
2207                http/tests/security/xssAuditor/script-tag-with-source-entities.html
2208
2209         * page/XSSAuditor.cpp:
2210         (WebCore::XSSAuditor::canEvaluate):
2211         (WebCore::XSSAuditor::canEvaluateJavaScriptURL):
2212         (WebCore::XSSAuditor::decodeURL): Modified to call WebCore::XSSAuditor::decodeHTMLEntities
2213         to decode HTML entities.
2214         (WebCore::XSSAuditor::decodeHTMLEntities): Added method to decode HTML entities.
2215         (WebCore::XSSAuditor::findInRequest):
2216         * page/XSSAuditor.h:
2217
2218 2009-07-10  David Kilzer  <ddkilzer@apple.com>
2219
2220         Bug 27007: Build fixes when ICONDATABASE is disabled
2221
2222         <https://bugs.webkit.org/show_bug.cgi?id=27007>
2223
2224         Reviewed by Sam Weinig.
2225
2226         * WebCore.xcodeproj/project.pbxproj: Added IconDatabaseNone.cpp
2227         to the project.
2228         * loader/icon/IconDatabase.cpp: Added
2229         #if ENABLE(ICONDATABASE)/#endif macro guard.
2230         * loader/icon/IconDatabase.h: Removed three public methods from
2231         #if ENABLE(ICONDATABASE)/#endif macro so that they may be
2232         stubbed out in IconDatabaseNone.cpp.
2233         * loader/icon/IconDatabaseNone.cpp: Added
2234         #if !ENABLE(ICONDATABASE)/#endif macro guard.
2235         (WebCore::IconDatabase::importIconURLForPageURL): Added.
2236         (WebCore::IconDatabase::importIconDataForIconURL): Added.
2237         (WebCore::IconDatabase::shouldStopThreadActivity): Added.
2238
2239 2009-07-10  Daniel Bates  <dbates@intudata.com>
2240
2241         Reviewed by Adam Barth.
2242
2243         https://bugs.webkit.org/show_bug.cgi?id=27151
2244
2245         Fixes issue where JavaScript URLs that contain null- and non-null control characters can
2246         bypass XSSAuditor.
2247
2248         Tests: http/tests/security/xssAuditor/javascript-link-control-char.html
2249                http/tests/security/xssAuditor/javascript-link-null-char.html
2250                http/tests/security/xssAuditor/javascript-link.html
2251
2252         * bindings/js/ScriptController.cpp:
2253         (WebCore::ScriptController::evaluate): Separated out logic for JavaScript URLs from 
2254         inline scripts. For JavaScript URLs, calls XSSAuditor::canEvaluateJavaScriptURL.
2255         * bindings/v8/ScriptController.cpp:
2256         (WebCore::ScriptController::evaluate): Made similar changes to evaluate() as in
2257         bindings/js/ScriptController.cpp.
2258         * page/XSSAuditor.cpp:
2259         (WebCore::XSSAuditor::canEvaluateJavaScriptURL): Separated out logic for JavaScript URLs
2260         into its own method.
2261         * page/XSSAuditor.h:
2262
2263 2009-07-10  Shinichiro Hamaji  <hamaji@chromium.org>
2264
2265         Reviewed by David Kilzer.
2266
2267         WebKit needs a style linting tool
2268         https://bugs.webkit.org/show_bug.cgi?id=25884
2269
2270         Fix bunch of style issues by autofix of cpplint.
2271         This patch is created to demonstrate the autofix of cpplint.py.
2272
2273         No new testcases because it's a style fix
2274
2275         * css/CSSParser.cpp:
2276         (WebCore::CSSParser::parseMediaQuery):
2277         (WebCore::CSSParser::validUnit):
2278         (WebCore::CSSParser::parseValue):
2279         (WebCore::skipCommaInDashboardRegion):
2280         (WebCore::CSSParser::parseDashboardRegions):
2281         (WebCore::ShadowParseContext::commitValue):
2282         (WebCore::ShadowParseContext::commitLength):
2283         (WebCore::ShadowParseContext::commitColor):
2284         (WebCore::BorderImageParseContext::commitNumber):
2285         (WebCore::BorderImageParseContext::commitWidth):
2286         (WebCore::BorderImageParseContext::commitRule):
2287         (WebCore::BorderImageParseContext::commitBorderImage):
2288         (WebCore::CSSParser::lex):
2289         (WebCore::CSSParser::text):
2290         * css/CSSStyleSelector.cpp:
2291         (WebCore::CSSStyleSelector::applyProperty):
2292         * css/MediaList.cpp:
2293         (WebCore::MediaList::deleteMedium):
2294         * css/MediaQuery.h:
2295         * css/MediaQueryEvaluator.cpp:
2296         (WebCore::parseAspectRatio):
2297         * css/MediaQueryEvaluator.h:
2298         * css/MediaQueryExp.h:
2299         (WebCore::MediaQueryExp::operator==):
2300         * css/WebKitCSSMatrix.h:
2301         * dom/Comment.h:
2302         * dom/Document.cpp:
2303         (WebCore::Document::setFocusedNode):
2304         * dom/Document.h:
2305         (WebCore::Document::setHasDashboardRegions):
2306         * dom/DocumentFragment.cpp:
2307         (WebCore::DocumentFragment::nodeName):
2308         * dom/DocumentFragment.h:
2309         * dom/DynamicNodeList.h:
2310         * dom/EditingText.h:
2311         * dom/Element.cpp:
2312         (WebCore::Element::dispatchAttrAdditionEvent):
2313         * dom/NamedAttrMap.cpp:
2314         (WebCore::NamedNodeMap::item):
2315         * dom/Node.cpp:
2316         (WebCore::Node::nodeValue):
2317         (WebCore::Node::nodeIndex):
2318         * dom/NodeRareData.h:
2319         (WebCore::NodeListsNodeData::create):
2320         * dom/Notation.h:
2321         * dom/ProcessingInstruction.h:
2322         * dom/Range.cpp:
2323         (WebCore::Range::processContents):
2324         * dom/StyledElement.cpp:
2325         (WebCore::toHex):
2326         * dom/XMLTokenizerLibxml2.cpp:
2327         (WebCore::PendingCallbacks::PendingStartElementNSCallback::~PendingStartElementNSCallback):
2328         (WebCore::PendingCallbacks::PendingStartElementNSCallback::call):
2329         (WebCore::PendingCallbacks::):
2330         (WebCore::OffsetBuffer::readOutBytes):
2331         (WebCore::handleElementNamespaces):
2332         (WebCore::handleElementAttributes):
2333         (WebCore::attributesStartElementNsHandler):
2334         * dom/XMLTokenizerQt.cpp:
2335         (WebCore::attributesStartElementNsHandler):
2336         (WebCore::XMLTokenizer::parseStartElement):
2337         * editing/ApplyStyleCommand.cpp:
2338         (WebCore::ApplyStyleCommand::applyInlineStyle):
2339         * editing/DeleteSelectionCommand.cpp:
2340         (WebCore::DeleteSelectionCommand::removeNode):
2341         * editing/Editor.cpp:
2342         (WebCore::Editor::pasteAsPlainText):
2343         * editing/SelectionController.cpp:
2344         (WebCore::SelectionController::directionOfEnclosingBlock):
2345         * editing/SmartReplaceICU.cpp:
2346         (WebCore::addAllCodePoints):
2347         * history/HistoryItem.cpp:
2348         (WebCore::HistoryItem::icon):
2349         (WebCore::HistoryItem::adoptVisitCounts):
2350         * html/CanvasStyle.cpp:
2351         (WebCore::CanvasStyle::applyFillColor):
2352         * html/HTMLAnchorElement.cpp:
2353         (WebCore::HTMLAnchorElement::setActive):
2354         (WebCore::HTMLAnchorElement::isLiveLink):
2355         * html/HTMLAppletElement.h:
2356         * html/HTMLAudioElement.h:
2357         * html/HTMLBRElement.h:
2358         * html/HTMLBaseElement.h:
2359         * html/HTMLBaseFontElement.h:
2360         * html/HTMLDListElement.h:
2361         * html/HTMLDirectoryElement.h:
2362         * html/HTMLFieldSetElement.cpp:
2363         (WebCore::HTMLFieldSetElement::HTMLFieldSetElement):
2364         * html/HTMLFormElement.cpp:
2365         (WebCore::HTMLFormElement::reset):
2366         * html/HTMLHRElement.cpp:
2367         (WebCore::HTMLHRElement::parseMappedAttribute):
2368         * html/HTMLHeadElement.h:
2369         * html/HTMLHtmlElement.h:
2370         * html/HTMLImageElement.h:
2371         (WebCore::HTMLImageElement::setLoadManually):
2372         * html/HTMLInputElement.cpp:
2373         (WebCore::HTMLInputElement::selection):
2374         * html/HTMLIsIndexElement.h:
2375         * html/HTMLMarqueeElement.cpp:
2376         * html/HTMLMediaElement.h:
2377         (WebCore::HTMLMediaElement::):
2378         * html/HTMLMenuElement.h:
2379         * html/HTMLMetaElement.h:
2380         * html/HTMLModElement.h:
2381         * html/HTMLOListElement.h:
2382         * html/HTMLOptionElement.cpp:
2383         (WebCore::HTMLOptionElement::childrenChanged):
2384         * html/HTMLParamElement.h:
2385         * html/HTMLQuoteElement.h:
2386         * html/HTMLStyleElement.h:
2387         * html/HTMLTableCaptionElement.h:
2388         * html/HTMLTableCellElement.h:
2389         * html/HTMLTableColElement.h:
2390         * html/HTMLTableSectionElement.cpp:
2391         (WebCore::HTMLTableSectionElement::deleteRow):
2392         * html/HTMLTitleElement.h:
2393         * html/HTMLTokenizer.cpp:
2394         (WebCore::HTMLTokenizer::parseNonHTMLText):
2395         (WebCore::HTMLTokenizer::parseEntity):
2396         (WebCore::HTMLTokenizer::parseTag):
2397         (WebCore::HTMLTokenizer::write):
2398         * html/HTMLUListElement.h:
2399         * html/HTMLVideoElement.h:
2400         * html/TimeRanges.h:
2401         (WebCore::TimeRanges::Range::Range):
2402         * inspector/InspectorController.cpp:
2403         (WebCore::InspectorController::enableResourceTracking):
2404         (WebCore::InspectorController::disableResourceTracking):
2405         * inspector/InspectorFrontend.cpp:
2406         (WebCore::InspectorFrontend::newInspectorJSONObject):
2407         * page/Console.cpp:
2408         (WebCore::Console::addMessage):
2409         * page/EventHandler.cpp:
2410         (WebCore::EventHandler::handleMousePressEvent):
2411         (WebCore::EventHandler::selectCursor):
2412         (WebCore::EventHandler::defaultKeyboardEventHandler):
2413         * page/Frame.cpp:
2414         (WebCore::Frame::jsDefaultStatusBarText):
2415         * page/android/DragControllerAndroid.cpp:
2416         (WebCore::DragController::dragOperation):
2417         * page/android/EventHandlerAndroid.cpp:
2418         (WebCore::EventHandler::tabsToAllControls):
2419         (WebCore::EventHandler::eventActivatedView):
2420         * page/animation/AnimationController.cpp:
2421         (WebCore::AnimationControllerPrivate::updateStyleIfNeededDispatcherFired):
2422         * page/gtk/DragControllerGtk.cpp:
2423         (WebCore::DragController::dragOperation):
2424         * page/qt/DragControllerQt.cpp:
2425         * page/win/DragControllerWin.cpp:
2426         (WebCore::DragController::isCopyKeyDown):
2427         * page/win/FrameWin.h:
2428         * rendering/RenderSlider.cpp:
2429         (WebCore::RenderSlider::mouseEventOffsetToThumb):
2430         * rendering/style/RenderStyle.h:
2431         (WebCore::InheritedFlags::setVerticalAlignLength):
2432         (WebCore::InheritedFlags::setUnicodeBidi):
2433         (WebCore::InheritedFlags::setCursor):
2434         * rendering/style/RenderStyleConstants.h:
2435         (WebCore::):
2436         * rendering/style/SVGRenderStyleDefs.h:
2437         * rendering/style/StyleInheritedData.h:
2438         (WebCore::StyleInheritedData::operator!=):
2439         * storage/DatabaseTask.h:
2440         * svg/GradientAttributes.h:
2441         * svg/LinearGradientAttributes.h:
2442         * svg/PatternAttributes.h:
2443         * svg/RadialGradientAttributes.h:
2444         * svg/SVGAnimatedPathData.h:
2445         * svg/SVGAnimatedPoints.h:
2446         * svg/SVGAnimationElement.h:
2447         * svg/SVGClipPathElement.h:
2448         * svg/SVGElementInstance.h:
2449         * svg/SVGFEBlendElement.cpp:
2450         (WebCore::SVGFEBlendElement::build):
2451         * svg/SVGFEBlendElement.h:
2452         * svg/SVGFEColorMatrixElement.cpp:
2453         (WebCore::SVGFEColorMatrixElement::build):
2454         * svg/SVGFEComponentTransferElement.cpp:
2455         (WebCore::SVGFEComponentTransferElement::build):
2456         * svg/SVGFECompositeElement.cpp:
2457         (WebCore::SVGFECompositeElement::build):
2458         * svg/SVGFEDiffuseLightingElement.cpp:
2459         (WebCore::SVGFEDiffuseLightingElement::build):
2460         * svg/SVGFEDisplacementMapElement.cpp:
2461         (WebCore::SVGFEDisplacementMapElement::build):
2462         * svg/SVGFEDistantLightElement.h:
2463         * svg/SVGFEFloodElement.cpp:
2464         (WebCore::SVGFEFloodElement::build):
2465         * svg/SVGFEFloodElement.h:
2466         * svg/SVGFEFuncAElement.h:
2467         * svg/SVGFEFuncBElement.h:
2468         * svg/SVGFEFuncGElement.h:
2469         * svg/SVGFEFuncRElement.h:
2470         * svg/SVGFEGaussianBlurElement.cpp:
2471         (WebCore::SVGFEGaussianBlurElement::build):
2472         * svg/SVGFEImageElement.cpp:
2473         (WebCore::SVGFEImageElement::build):
2474         * svg/SVGFEMergeElement.cpp:
2475         (WebCore::SVGFEMergeElement::build):
2476         * svg/SVGFEOffsetElement.cpp:
2477         (WebCore::SVGFEOffsetElement::build):
2478         * svg/SVGFEPointLightElement.h:
2479         * svg/SVGFESpecularLightingElement.cpp:
2480         (WebCore::SVGFESpecularLightingElement::build):
2481         * svg/SVGFESpotLightElement.h:
2482         * svg/SVGFETileElement.cpp:
2483         (WebCore::SVGFETileElement::build):
2484         * svg/SVGLineElement.cpp:
2485         (WebCore::SVGLineElement::parseMappedAttribute):
2486         * svg/SVGList.h:
2487         * svg/SVGListTraits.h:
2488         (WebCore::):
2489         * svg/SVGMPathElement.h:
2490         * svg/SVGMetadataElement.h:
2491         * svg/SVGParserUtilities.cpp:
2492         (WebCore::SVGPathParser::parseSVG):
2493         (WebCore::SVGPathParser::calculateArc):
2494         * svg/SVGPathElement.h:
2495         * svg/SVGPathSegClosePath.h:
2496         * svg/SVGSVGElement.h:
2497         * svg/SVGSetElement.h:
2498         * svg/SVGSwitchElement.h:
2499         * svg/SVGTextPathElement.cpp:
2500         (WebCore::SVGTextPathElement::parseMappedAttribute):
2501         * svg/SVGTextPathElement.h:
2502         * svg/SVGTitleElement.h:
2503         * svg/SVGTransformable.cpp:
2504         (WebCore::):
2505         * svg/SVGViewSpec.cpp:
2506         (WebCore::):
2507         * svg/animation/SMILTime.cpp:
2508         (WebCore::operator+):
2509         (WebCore::operator-):
2510         (WebCore::operator*):
2511         * svg/animation/SVGSMILElement.h:
2512         * svg/graphics/SVGResource.cpp:
2513         (WebCore::clientMap):
2514         * wml/WMLPostfieldElement.cpp:
2515         (WebCore::WMLPostfieldElement::value):
2516         * wml/WMLSetvarElement.cpp:
2517         (WebCore::WMLSetvarElement::value):
2518         * workers/WorkerRunLoop.cpp:
2519         * xml/XMLHttpRequest.cpp:
2520         (WebCore::XMLHttpRequest::dropProtection):
2521         * xml/XPathPath.h:
2522
2523 2009-07-10  Eric Carlson  <eric.carlson@apple.com>
2524
2525         Reviewed by Simon Fraser.
2526
2527         <rdar://problem/7049066>.
2528         Update SnowLeopard media controller layout.
2529
2530         * css/mediaControlsQT.css:
2531             Update for new layout.
2532         * html/HTMLMediaElement.cpp:
2533         (WebCore::HTMLMediaElement::movieLoadType):
2534             Added to replace isStreaming.
2535         * html/HTMLMediaElement.h:
2536             Declare movieLoadType, remove isStreaming.
2537
2538         * rendering/MediaControlElements.cpp:
2539         (WebCore::MediaControlStatusDisplayElement::update):
2540             Use movieLoadType instead of isStreaming.
2541         (WebCore::MediaControlTimelineContainerElement::rendererIsNeeded):
2542             MediaControlElement is the base class, not HTMLInputElement.
2543         (WebCore::MediaControlStatusDisplayElement::rendererIsNeeded):
2544             Ditto.
2545         (WebCore::MediaControlRewindButtonElement::rendererIsNeeded):
2546             Don't display rewind button for live streams.
2547         (WebCore::MediaControlReturnToRealtimeButtonElement::rendererIsNeeded):
2548             MediaControlInputElement is the base class, not HTMLInputElement.
2549         * rendering/MediaControlElements.h:
2550
2551         * rendering/RenderThemeMac.h:
2552         * rendering/RenderThemeMac.mm:
2553         (WebCore::getMediaUIPartStateFlags):
2554             New, return wkDrawMediaUIPart flags.
2555         (WebCore::RenderThemeMac::paintMediaFullscreenButton):
2556         (WebCore::RenderThemeMac::paintMediaMuteButton):
2557         (WebCore::RenderThemeMac::paintMediaPlayButton):
2558         (WebCore::RenderThemeMac::paintMediaSeekBackButton):
2559         (WebCore::RenderThemeMac::paintMediaSeekForwardButton):
2560         (WebCore::RenderThemeMac::paintMediaSliderTrack):
2561         (WebCore::RenderThemeMac::paintMediaSliderThumb):
2562         (WebCore::RenderThemeMac::paintMediaRewindButton):
2563         (WebCore::RenderThemeMac::paintMediaReturnToRealtimeButton):
2564         (WebCore::RenderThemeMac::paintMediaControlsBackground):
2565         (WebCore::RenderThemeMac::paintMediaCurrentTime):
2566         (WebCore::RenderThemeMac::paintMediaTimeRemaining):
2567             Use getMediaUIPartStateFlags.
2568
2569 2009-07-10  Michelangelo De Simone  <micdesim@gmail.com>
2570
2571         Reviewed by Adele Peterson.
2572
2573         https://bugs.webkit.org/show_bug.cgi?id=19562
2574         Added build stuff and stub for the ValidityState class, part of HTML5
2575         section Forms:
2576         http://www.whatwg.org/specs/web-apps/current-work/multipage/forms.html#validitystate
2577
2578         Test: fast/forms/ValidityState-001.html
2579
2580         * DerivedSources.cpp: Fix aimed to include ValidityState files
2581         * DerivedSources.make: ditto
2582         * GNUmakefile.am: ditto
2583         * WebCore.gypi: ditto
2584         * WebCore.pro: ditto
2585         * WebCore.vcproj/WebCore.vcproj: ditto
2586         * WebCore.xcodeproj/project.pbxproj: ditto
2587         * WebCoreSources.bkl: ditto
2588         * html/HTMLButtonElement.idl: "validity" attribute
2589         * html/HTMLFieldSetElement.idl: ditto
2590         * html/HTMLFormControlElement.cpp: object getter
2591         (WebCore::HTMLFormControlElement::validity):
2592         * html/HTMLFormControlElement.h: ditto
2593         * html/HTMLInputElement.idl: "validity" attribute
2594         * html/HTMLSelectElement.idl: ditto
2595         * html/HTMLTextAreaElement.idl: ditto
2596         * html/ValidityState.cpp: Added.
2597         (WebCore::ValidityState::ValidityState):
2598         (WebCore::ValidityState::valid): validation flag
2599         * html/ValidityState.h: Added.
2600         (WebCore::ValidityState::create): creation routine
2601         (WebCore::ValidityState::control): ValidityState's parent getter
2602         (WebCore::ValidityState::valueMissing): validation flag
2603         (WebCore::ValidityState::typeMismatch): ditto
2604         (WebCore::ValidityState::patternMismatch): ditto
2605         (WebCore::ValidityState::tooLong): ditto
2606         (WebCore::ValidityState::rangeUnderflow): ditto
2607         (WebCore::ValidityState::rangeOverflow): ditto
2608         (WebCore::ValidityState::stepMismatch): ditto
2609         (WebCore::ValidityState::customError): ditto
2610         * html/ValidityState.idl: Added.
2611
2612 2009-07-10  Brady Eidson  <beidson@apple.com>
2613
2614         Style cleanup over my last patch.
2615
2616         * xml/XMLHttpRequest.cpp:
2617         (WebCore::XMLHttpRequest::~XMLHttpRequest):
2618
2619 2009-07-10  Kevin McCullough  <kmccullough@apple.com>
2620
2621         Reviewed by Geoffrey Garen.
2622
2623         * inspector/JavaScriptCallFrame.cpp:
2624         (WebCore::JavaScriptCallFrame::dynamicGlobalObject):
2625         * inspector/JavaScriptCallFrame.h: New helper method, used below.
2626
2627         * inspector/JavaScriptDebugServer.cpp:
2628         (WebCore::JavaScriptDebugServer::detach): In the special case
2629         where we detach from a window currently executing JavaScript,
2630         manually tear down our representation of the JavaScript
2631         call stack, since we won't get any more callbacks from JavaScriptCore
2632         to automatically tear it down. It's too bad that WebCore is
2633         responsible for this kind of tracking -- in the future, it would
2634         be nice if more of the breakpoint handling was inside of JavaScriptCore.
2635
2636 2009-07-10  Brady Eidson  <beidson@apple.com>
2637
2638         Reviewed by Antti Koivisto.
2639
2640         https://bugs.webkit.org/show_bug.cgi?id=26496 and <rdar://problem/7046520>
2641         REGRESSION: XHR stream connection blocks iFrame loading and resource downloading
2642
2643         With this test we ended up going over the maximum-connections-per-host limit that CFNetwork expected.
2644         When that happened, the first request that was over the limit ended up in a bizarre state where it 
2645         wasn't fully serviced until after the long running XHR was complete.
2646
2647         Loader and Loader::Host work together to try to not exceed the max-connection limit but non-cache
2648         resources - such as XHR - could still end up causing this limit to be exceeded.
2649
2650         This fix adds a workaround specifically for XHR while we hash out a more thorough solution that will
2651         handle this at the resource handle level.
2652
2653         * loader/loader.cpp:
2654         (WebCore::Loader::nonCacheRequestInFlight):
2655         (WebCore::Loader::nonCacheRequestComplete):
2656         (WebCore::Loader::Host::Host):
2657         (WebCore::Loader::Host::nonCacheRequestInFlight):
2658         (WebCore::Loader::Host::nonCacheRequestComplete):
2659         (WebCore::Loader::Host::servePendingRequests): Take nonCacheRequestsInFlight into account.
2660         * loader/loader.h:
2661         (WebCore::Loader::Host::processingResource): Take nonCacheRequestsInFlight into account.
2662
2663         * xml/XMLHttpRequest.cpp:
2664         (WebCore::XMLHttpRequest::XMLHttpRequest):
2665         (WebCore::XMLHttpRequest::~XMLHttpRequest): 
2666         (WebCore::XMLHttpRequest::loadRequestAsynchronously): Bump the nonCacheRequestInFlight count.
2667         (WebCore::XMLHttpRequest::didFail): Decrement that count if the Loader was notified.
2668         (WebCore::XMLHttpRequest::didFinishLoading): Ditto.
2669
2670 2009-07-10  Antti Koivisto  <antti@apple.com>
2671
2672         Try to unbreak non-Mac build.
2673
2674         * page/ChromeClient.h:
2675         (WebCore::ChromeClient::formDidFocus):
2676         (WebCore::ChromeClient::formDidBlur):
2677
2678 2009-07-10  Beth Dakin  <bdakin@apple.com>
2679
2680         Reviewed by Anders Carlsson.
2681
2682         The rest of the fix for <rdar://problem/7038831> REGRESSION (TOT): 
2683         In Mail, a crash occurs at WebCore::Widget::afterMouseDown() after 
2684         clicking To Do's close box
2685
2686         Make the Widget* in passMouseDownEventToWidget() a RefPtr.
2687
2688         * page/mac/EventHandlerMac.mm:
2689         (WebCore::EventHandler::passMouseDownEventToWidget):
2690
2691 2009-07-10  Eric Seidel  <eric@webkit.org>
2692
2693         Reviewed by Adam Barth.
2694
2695         rename getDOMStructure calls w/o JSGlobalObject* to deprecatedGetDOMStructure
2696         https://bugs.webkit.org/show_bug.cgi?id=27157
2697
2698         This is the first step to fixing
2699         https://bugs.webkit.org/show_bug.cgi?id=27088
2700
2701         * WebCore.xcodeproj/project.pbxproj:
2702         * bindings/js/JSDOMBinding.h:
2703         (WebCore::deprecatedGetDOMStructure):
2704         (WebCore::createDOMObjectWrapper):
2705         (WebCore::createDOMNodeWrapper):
2706         * bindings/js/JSNamedNodesCollection.cpp:
2707         (WebCore::JSNamedNodesCollection::JSNamedNodesCollection):
2708         * bindings/js/JSRGBColor.cpp:
2709         (WebCore::JSRGBColor::JSRGBColor):
2710         * bridge/objc/objc_runtime.mm:
2711         (JSC::Bindings::ObjcFallbackObjectImp::ObjcFallbackObjectImp):
2712         * bridge/runtime_array.cpp:
2713         (JSC::RuntimeArray::RuntimeArray):
2714         * bridge/runtime_method.cpp:
2715         (JSC::RuntimeMethod::RuntimeMethod):
2716         * bridge/runtime_object.cpp:
2717         (JSC::RuntimeObjectImp::RuntimeObjectImp):
2718
2719 2009-07-10  Greg Bolsinga  <bolsinga@apple.com>
2720
2721         Reviewed by Antti Koivisto.
2722
2723         Add delegate methods about focus and blur and state change
2724         https://bugs.webkit.org/show_bug.cgi?id=27153
2725
2726         Call the appropriate new ChromeClient methods for focus and blur.
2727
2728         * html/HTMLFormControlElement.cpp:
2729         (WebCore::HTMLFormControlElement::dispatchFocusEvent):
2730         (WebCore::HTMLFormControlElement::dispatchBlurEvent):
2731         * html/HTMLFormControlElement.h:
2732         * loader/EmptyClients.h:
2733         (WebCore::EmptyChromeClient::formDidFocus):
2734         (WebCore::EmptyChromeClient::formDidBlur):
2735         * page/ChromeClient.h:
2736
2737 2009-07-10  Steve Falkenburg  <sfalken@apple.com>
2738
2739         <rdar://problem/7048741> REGRESSION: Error about missing SwMenuX.dll opening pages with Shockwave
2740         
2741         Use altered search path while loading plug-ins. This modifies the DLL search order
2742         to look in the directory containing the plug-in even if a call to SetDllDirectory
2743         was previously made. Use of SetDllDirectory removes the current directory from the search path,
2744         breaking the previous strategy for locating any dependent DLLs of the plug-in.
2745         
2746         Reviewed by Jon Honeycutt.
2747
2748         * plugins/win/PluginPackageWin.cpp:
2749         (WebCore::PluginPackage::load): Use LoadLibraryEx with LOAD_WITH_ALTERED_SEARCH_PATH
2750
2751 2009-07-10  Adam Roben  <aroben@apple.com>
2752
2753         Sort all our Xcode projects
2754
2755         Accomplished using sort-Xcode-project-file.
2756
2757         Requested by Dave Kilzer.
2758
2759         * WebCore.xcodeproj/project.pbxproj:
2760
2761 2009-07-10  Adam Langley  <agl@google.com>
2762
2763         Reviewed by Darin Fisher.
2764
2765         Chromium Linux: use disabled images for disabled widgets.
2766
2767         https://bugs.webkit.org/show_bug.cgi?id=27106
2768
2769         Previously, checkboxes and radio controls rendered the same even if disabled.
2770         The Chromium side of this change is r20224.
2771
2772         * rendering/RenderThemeChromiumSkia.cpp:
2773         (WebCore::RenderThemeChromiumSkia::paintCheckbox):
2774         (WebCore::RenderThemeChromiumSkia::paintRadio):
2775
2776 2009-07-10  Simon Fraser  <simon.fraser@apple.com>
2777
2778         Reviewed by John Sullivan.
2779
2780         Fix crash when changing the zoom level in http://iphone.akamai.com/
2781         <rdar://problem/7029077>
2782
2783         RenderLayerBacking's paintIntoLayer() method called updateLayerListsIfNeeded(),
2784         which could potentially destroy that compositing layer, causing a crash.
2785         Prevent this from happening by not doing a compositing update from paintIntoLayer().
2786
2787         The existing updateLayerListsIfNeeded() was renamed to updateCompositingAndLayerListsIfNeeded(),
2788         and still does the compositing update. The new updateLayerListsIfNeeded() does not touch
2789         compositing layers, and is still called from paintIntoLayer().
2790         
2791         * rendering/RenderLayer.cpp:
2792         (WebCore::RenderLayer::paintLayer):
2793         (WebCore::RenderLayer::hitTestLayer):
2794         (WebCore::RenderLayer::updateLayerListsIfNeeded):
2795         (WebCore::RenderLayer::updateCompositingAndLayerListsIfNeeded):
2796         * rendering/RenderLayer.h:
2797
2798 2009-07-10  Drew Wilson  <atwilson@google.com>
2799
2800         Reviewed by Darin Adler.
2801
2802         Need to remove UsesManualToJSImplementation() in favor of CustomToJS.
2803         https://bugs.webkit.org/show_bug.cgi?id=27010
2804
2805         Added support for CustomToJS IDL attribute to replace the hard-coded class list in UsesManualToJSImplementation().
2806
2807         This is just a cleanup of existing functionality, so existing LayoutTests adequately cover this patch.
2808
2809         * bindings/scripts/CodeGeneratorJS.pm:
2810         Removed UsesManualToJSImplementation(), added support for CustomToJS attribute.
2811         * css/CSSRule.idl:
2812         * css/CSSValue.idl:
2813         * css/StyleSheet.idl:
2814         * dom/Document.idl:
2815         * dom/Event.idl:
2816         * dom/Node.idl:
2817         * html/ImageData.idl:
2818         * svg/SVGElementInstance.idl:
2819         * svg/SVGPathSeg.idl:
2820         Added CustomToJS attribute to all the above IDL files.
2821
2822 2009-07-10  Dan Bernstein  <mitz@apple.com>
2823
2824         - fix the build by reverting the ill-advised r45711
2825
2826         * page/FrameView.cpp:
2827         (WebCore::FrameView::scrollToAnchor):
2828
2829 2009-07-09  Brian Weinstein  <bweinstein@apple.com>
2830
2831         Reviewed by Tim Hatcher.
2832
2833         Updated WebCore.base.exp to add some needed functions.
2834
2835         * WebCore.base.exp:
2836
2837 2009-07-10  Dan Bernstein  <mitz@apple.com>
2838
2839         - address a review comment from Simon Fraser which I forgot to include
2840           in the last check-in
2841
2842         * page/FrameView.cpp:
2843         (WebCore::FrameView::scrollToAnchor): Pass true to getRect() for
2844         maximum transform friendliness!
2845
2846 2009-07-10  Dan Bernstein  <mitz@apple.com>
2847
2848         Reviewed by Simon Fraser.
2849
2850         - fix https://bugs.webkit.org/show_bug.cgi?id=27137
2851           <rdar://problem/7043124> REGRESSION (r44311): Reproducible crash due
2852           to infinite recursion into FrameLoader::gotoAnchor() ->
2853           FrameView::layout()
2854
2855         Test: fast/loader/goto-anchor-infinite-layout.html
2856
2857         * loader/FrameLoader.cpp:
2858         (WebCore::FrameLoader::gotoAnchor): Moved the code to update layout,
2859         find the renderer to scroll to, and scroll from here to methods on
2860         FrameView, and replaced it with a call to
2861         FrameView::maintainScrollPositionAtAnchor().
2862         (WebCore::FrameLoader::completed): Call maintainScrollPositionAtAnchor()
2863         instead of setLockedToAnchor().
2864
2865         * page/FrameView.cpp:
2866         (WebCore::FrameView::FrameView): Removed initialization of
2867         m_lockedToAnchor.
2868         (WebCore::FrameView::reset): Reset m_maintainScrollPositionAnchor instead
2869         of m_lockedToAnchor.
2870         (WebCore::FrameView::layout): Removed the code related to scrolling to
2871         the anchor from here, because scrolling can trigger events which
2872         invalidate the layout, and as such, belongs with the post-layout tasks.
2873         (WebCore::FrameView::maintainScrollPositionAtAnchor): Added. When called
2874         with a node scrolls the view to the top of that node and maintains it
2875         scrolled to the top of the node during subsequent layouts, until
2876         this function is called with 0 or other things trigger scrolling.
2877         (WebCore::FrameView::scrollRectIntoViewRecursively): Reset
2878         m_maintainScrollPositionAnchor.
2879         (WebCore::FrameView::setScrollPosition): Ditto.
2880         (WebCore::FrameView::scrollToAnchor): Added. Scrolls to the top of
2881         m_maintainScrollPositionAnchor, if it is set.
2882         (WebCore::FrameView::performPostLayoutTasks): Call scrollToAnchor().
2883         (WebCore::FrameView::setWasScrolledByUser): Reset
2884         m_maintainScrollPositionAnchor.
2885
2886         * page/FrameView.h: Removed lockedToAnchor(), setLockedToAnchor(),
2887         and m_lockedToAnchor. Added maintainScrollPositionAtAnchor() and
2888         m_maintainScrollPositionAnchor.
2889
2890 2009-07-04  Sriram Yadavalli  <sriram.yadavalli@nokia.com>
2891
2892         Reviewed by Simon Hausmann.
2893
2894         https://bugs.webkit.org/show_bug.cgi?id=26439
2895
2896         QtWebKit fails in loading www.nytimes.com in Windows/Linux
2897
2898         QNetworkReplyHandler is ignoring content associated with 401 error.
2899         This causes the XHR response handling to fail.
2900
2901         Simon: Added also ProxyAuthenticationRequiredError, to handle the same
2902         case when going through proxies, as suggested by Prasanth.
2903
2904         * platform/network/qt/QNetworkReplyHandler.cpp:
2905         (WebCore::QNetworkReplyHandler::finish):
2906
2907 2009-07-10  Simon Hausmann  <simon.hausmann@nokia.com>
2908
2909         Reviewed by Holger Freyther.
2910
2911         Enable HTML 5 Messaging to fix message channel Qt DRT failures in
2912         fast/events.
2913
2914         * WebCore.pro:
2915
2916 2009-07-09  Roland Steiner  <rolandsteiner@google.com>
2917
2918         Reviewed by Maciej Stachowiak.
2919
2920         added InlineBox::isLeaf()
2921         firstLeafChild()/lastLeafChild() not virtual and not callable on InlineBox anymore.
2922         firstLeafChild()/lastLeafChild() will no longer return a node outside of the given subtree.   
2923         Removed firstLeafChildAfterBox()/lastLeafChildBeforeBox()
2924         Removed potentially quadratic behavior if all nodes before/after a given box are empty InlineFlowBoxes
2925
2926         Currently, these methods are called on RootInlineBox objects only, so above changes should not have
2927         any observable effect (only the removal of the square performance behavior could apply, 
2928         but the conditions for that are probably of a rather theoretical nature).
2929
2930         * rendering/InlineBox.cpp:
2931         (WebCore::InlineBox::nextLeafChild):
2932         (WebCore::InlineBox::prevLeafChild):
2933         * rendering/InlineBox.h:
2934         (WebCore::InlineBox::isLeaf):
2935         * rendering/InlineFlowBox.cpp:
2936         (WebCore::InlineFlowBox::firstLeafChild):
2937         (WebCore::InlineFlowBox::lastLeafChild):
2938         * rendering/InlineFlowBox.h:
2939         (WebCore::InlineFlowBox::firstChild):
2940         (WebCore::InlineFlowBox::lastChild):
2941         (WebCore::InlineFlowBox::isLeaf):
2942         * rendering/RootInlineBox.cpp:
2943         (WebCore::RootInlineBox::closestLeafChildForXPos):
2944
2945 2009-07-09  Roland Steiner  <rolandsteiner@google.com>
2946
2947         Reviewed by Maciej Stachowiak.
2948
2949         Added InlineBox::baselinePosition() and lineHeight() methods
2950         (adapted remaining code accordingly to use those methods)
2951
2952         No change in functionality.
2953
2954         * rendering/InlineBox.h:
2955         (WebCore::InlineBox::baselinePosition):
2956         (WebCore::InlineBox::lineHeight):
2957         * rendering/InlineFlowBox.cpp:
2958         (WebCore::InlineFlowBox::adjustMaxAscentAndDescent):
2959         (WebCore::InlineFlowBox::computeLogicalBoxHeights):
2960         (WebCore::InlineFlowBox::placeBoxesVertically):
2961
2962 2009-07-09  Oliver Hunt  <oliver@apple.com>
2963
2964         Reviewed by Maciej Stachowiak.
2965
2966         Bug 27142 - canPlayType() should return empty string for unsupported content
2967         <https://bugs.webkit.org/show_bug.cgi?id=27142>
2968
2969         Return "" instead of "no" for unsupport media types. 
2970
2971         * html/HTMLMediaElement.cpp:
2972         (WebCore::HTMLMediaElement::canPlayType):
2973
2974 2009-07-09  Roland Steiner  <rolandsteiner@google.com>
2975
2976         Reviewed by Maciej Stachowiak.
2977
2978         Implement the part of HTML5 spec that deals with parsing of <rp> and <rt> tags
2979         in that their end tags are optional if followed by <rp>/<rt>.
2980
2981         Also specify a new accessibility role "annotation" for <rp> and <rt>.
2982
2983         Affected code parts are not enclosed in #IF ENABLE(RUBY), since the parsing
2984         is not affected by whether ruby is rendered properly or not (in fact, it may 
2985         be more profound without ruby layouting, since the contents of <rp> are not hidden).
2986
2987         Test: fast/ruby/parse-rp.html
2988
2989         * accessibility/AccessibilityObject.h:
2990         (WebCore::):
2991         * accessibility/AccessibilityRenderObject.cpp:
2992         (WebCore::AccessibilityRenderObject::roleValue):
2993         * html/HTMLElement.cpp:
2994         (WebCore::HTMLElement::endTagRequirement):
2995         (WebCore::HTMLElement::tagPriority):
2996         (WebCore::inlineTagList):
2997         * html/HTMLParser.cpp:
2998         (WebCore::HTMLParser::rpCreateErrorCheck):
2999         (WebCore::HTMLParser::rtCreateErrorCheck):
3000         (WebCore::HTMLParser::getNode):
3001         * html/HTMLParser.h:
3002         * html/HTMLTagNames.in:
3003
3004 2009-07-09  Dmitry Titov  <dimich@chromium.org>
3005
3006         Not reviewed, fix for previous commit.
3007
3008         The change http://trac.webkit.org/changeset/45695 did not correctly
3009         enabled GTL and QT build flags. This caused layout tests failure.
3010         This is speculative fix for those failures.
3011
3012         * GNUmakefile.am: added ENABLE_CHANNEL_MESSAGING flag.
3013         * WebCore.pro: ditto.
3014         * page/DOMWindow.idl: touched to cause recompile.
3015         * workers/WorkerContext.idl: ditto.
3016
3017 2009-07-09  Drew Wilson  <atwilson@google.com>
3018
3019         Reviewed by Alexey Proskuryakov.
3020
3021         https://bugs.webkit.org/show_bug.cgi?id=26903
3022
3023         Turned on CHANNEL_MESSAGING by default because the MessageChannel API
3024         is now implemented for Web Workers and is reasonably stable.
3025
3026         Tests: fast/events/message-channel-gc-2.html
3027                fast/events/message-channel-gc-3.html
3028                fast/events/message-channel-gc-4.html
3029                fast/events/message-channel-gc.html
3030                fast/events/message-channel-listener-circular-ownership.html
3031                fast/events/message-port-clone.html
3032                fast/events/message-port-constructor-for-deleted-document.html
3033                fast/events/message-port-deleted-document.html
3034                fast/events/message-port-deleted-frame.html
3035                fast/events/message-port-inactive-document.html
3036                fast/events/message-port-no-wrapper.html
3037                fast/events/message-port.html
3038                fast/workers/worker-cloneport.html
3039                fast/workers/worker-messageport-gc.html
3040                fast/workers/worker-messageport.html
3041
3042         * Configurations/FeatureDefines.xcconfig: Turned on ENABLE_CHANNEL_MESSAGING.
3043         * WebCore/WebCore.vcproj/WebCoreCommon.vsprops: ditto.
3044         * WebCore/WebCore.vcproj/build-generated-files.sh: ditto.
3045         * WebCore/page/DOMWindow.idl: touch the file to cause re-generation of headers.
3046         * WebCore/workers/WorkerContext.idl: ditto.
3047
3048
3049 2009-07-09  Pierre d'Herbemont  <pdherbemont@apple.com>
3050
3051         Reviewed by Simon Fraser.
3052
3053         Full page zoom breaks remaining and elapsed time display in the <video> controller.
3054         https://bugs.webkit.org/show_bug.cgi?id=27123
3055
3056         We are changing the size of the time remaining and time elapsed field, to
3057         automatically hide them, when the controller is too short.
3058
3059         Because we toggle the size between 0 and the previous value of the
3060         controller, we miss any width change that may occur during full page zoom,
3061         and we fail to restore a correct width.
3062
3063         This change fixes that problem by using a cloned style on which we
3064         set the width to 0, and restoring the previous style when going back to
3065         the normal width.
3066
3067         We take care about properly using the cloned style or the pseudo style,
3068         by overriding styleForElement().
3069
3070         * rendering/MediaControlElements.cpp:
3071         (WebCore::MediaControlElement::styleForElement):
3072         (WebCore::MediaControlElement::attach):
3073         (WebCore::MediaControlElement::updateStyle):
3074         (WebCore::MediaControlInputElement::styleForElement):
3075         (WebCore::MediaControlInputElement::attach):
3076         (WebCore::MediaControlInputElement::updateStyle):
3077         (WebCore::MediaControlTimeDisplayElement::MediaControlTimeDisplayElement):
3078         (WebCore::MediaControlTimeDisplayElement::styleForElement):
3079         (WebCore::MediaControlTimeDisplayElement::setVisible):
3080         * rendering/MediaControlElements.h:
3081         * rendering/RenderMedia.cpp:
3082         (WebCore::RenderMedia::shouldShowTimeDisplayControls): Make sure
3083         we take in account the zoom level when deciding if we should hide the 
3084         ellapsed and remaining time.
3085
3086 2009-07-09  Michael Nordman  <michaeln@google.com>
3087
3088         Reviewed by Darin Adler.
3089
3090         Fix chromium build bustage due to Widget being a RefCounted class.
3091         https://bugs.webkit.org/show_bug.cgi?id=27139
3092
3093         * platform/chromium/PopupMenuChromium.cpp:
3094         * platform/chromium/PopupMenuChromium.h:
3095
3096 2009-07-09  Chris Fleizach  <cfleizach@apple.com>
3097
3098         Reviewed by Darin Adler.
3099
3100         Bug 27130 - Need to implement ARIA role="toolbar"
3101         https://bugs.webkit.org/show_bug.cgi?id=27130
3102
3103         Test: platform/mac/accessibility/aria-toolbar.html
3104
3105         * accessibility/AccessibilityRenderObject.cpp:
3106         (WebCore::RoleEntry::):
3107         * accessibility/mac/AccessibilityObjectWrapper.mm:
3108         (-[AccessibilityObjectWrapper roleDescription]):
3109
3110 2009-07-09  Dimitri Glazkov  <dglazkov@chromium.org>
3111
3112         Reviewed by Darin Fisher.
3113
3114         [Chromium] Upstream WebCore.gypi, the project file for Chromium build.
3115         https://bugs.webkit.org/show_bug.cgi?id=27135
3116
3117         * WebCore.gypi: Added.
3118
3119 2009-07-09  Jon Honeycutt  <jhoneycutt@apple.com>
3120
3121         A more robust fix for <rdar://problem/6930280> Reproducible crash at
3122         USA Today photo gallery
3123
3124         Reviewed by Steve Falkenburg.
3125
3126         * plugins/win/PluginMessageThrottlerWin.cpp:
3127         (WebCore::PluginMessageThrottlerWin::messageThrottleTimerFired):
3128         Protect the PluginView from destruction before calling its window proc.
3129
3130 2009-07-09  Jon Honeycutt  <jhoneycutt@apple.com>
3131
3132         <rdar://problem/6978804> WER #16: Repro Access Violation in
3133         WebCore::PluginView::bindingInstance (1310178023)
3134
3135         Reviewed by Darin Adler.
3136
3137         * plugins/PluginView.cpp:
3138         (WebCore::PluginView::bindingInstance):
3139         Protect the PluginView from destruction before calling NPN_GetValue. If
3140         the renderer for the PluginView was destroyed during the call, and the
3141         PluginView's ref count is now 1, return null.
3142
3143 2009-07-09  Jon Honeycutt  <jhoneycutt@apple.com>
3144
3145         Speculative fix for <rdar://problem/6991251> WER #13: Crash in
3146         WebKit!WebCore::PluginView::performRequest+203 (1311461169)
3147
3148         Reviewed by Darin Adler.
3149
3150         * plugins/PluginView.cpp:
3151         (WebCore::PluginView::performRequest):
3152         Protect the PluginView from destruction before performing a load.
3153         Removed some trailing whitespace.
3154
3155 2009-07-09  Jon Honeycutt  <jhoneycutt@apple.com>
3156
3157         Build fix.
3158
3159         * inspector/JavaScriptDebugServer.cpp:
3160         (WebCore::JavaScriptDebugServer::setJavaScriptPaused):
3161
3162 2009-07-09  Beth Dakin and Jon Honeycutt <bdakin@apple.com>
3163
3164         Reviewed by Dave Hyatt.
3165
3166         Make Widget RefCounted to fix or make fixable:
3167
3168         <rdar://problem/7038831> REGRESSION (TOT): In Mail, a crash occurs 
3169         at WebCore::Widget::afterMouseDown() after clicking To Do's close 
3170         box
3171         <rdar://problem/6978804> WER #16: Repro Access Violation in 
3172         WebCore::PluginView::bindingInstance (1310178023)
3173         -and-
3174         <rdar://problem/6991251> WER #13: Crash in WebKit!
3175         WebCore::PluginView::performRequest+203 (1311461169) 
3176
3177         * loader/EmptyClients.h:
3178         (WebCore::EmptyFrameLoaderClient::createPlugin):
3179         Changed to return PassRefPtr
3180         (WebCore::EmptyFrameLoaderClient::createJavaAppletWidget):
3181         Ditto.
3182
3183         * loader/FrameLoader.cpp:
3184         (WebCore::FrameLoader::loadSubframe):
3185         (WebCore::FrameLoader::loadPlugin):
3186         Make the widget variable a RefPtr. Use .get() when passing it to
3187         RenderPart::setWidget().
3188         (WebCore::FrameLoader::createJavaAppletWidget):
3189         Make the widget variable a RefPtr.
3190
3191         * loader/FrameLoader.h:
3192         Changed the return type of createJavaAppletWidget().
3193
3194         * loader/FrameLoaderClient.h:
3195         Change the return types of createPlugin() and 
3196         createJavaAppletWidget().
3197
3198         * page/Frame.cpp:
3199         (WebCore::Frame::createView):
3200         No need to call .get() since setWidget() takes a RefPtr.
3201
3202         * page/FrameView.cpp:
3203         (WebCore::FrameView::layoutIfNeededRecursive):
3204         children() now returns a HashSet of RefPtrs.
3205
3206         * page/FrameView.h:
3207         Remove inheritance from RefCounted; we pick this up from ScrollView
3208         through Widget.
3209
3210         * platform/ScrollView.cpp:
3211         (WebCore::ScrollView::addChild):
3212         addChild() now takes a PassRefPtr and m_children now keeps a 
3213         HashSet of RefPtrs.
3214
3215         * platform/ScrollView.h:
3216         ScrollView constructor is now protected.
3217         (WebCore::ScrollView::children):
3218         m_children is now a HashSet of RefPtrs.
3219
3220         * platform/Scrollbar.h:
3221         Remove inheritance from RefCounted; we pick this up from ScrollView
3222         through Widget.
3223
3224         * platform/Widget.h:
3225         Inherit from RefCounted. Cleaned up some whitespace. Make m_widget 
3226         a RefPtr.
3227
3228         * plugins/PluginView.cpp:
3229         (WebCore::PluginView::create):
3230         Adopt the PluginView when returning it.
3231
3232         * plugins/PluginView.h:
3233         Changed create() to return a PassRefPtr.
3234
3235         * rendering/RenderApplet.cpp:
3236         Receive result in a RefPtr when calling createJavaAppletWidget().
3237
3238         * rendering/RenderPart.cpp:
3239         (WebCore::RenderPart::setWidget): 
3240         setWidget() now takes a PassRefPtr. Also removed the manual ref of 
3241         FrameViews. This is handled by having m_widget be a RefPtr. Removed 
3242         deleteWidget().
3243
3244         * rendering/RenderPart.h:
3245         Removed override of deleteWidget().
3246
3247         * rendering/RenderWidget.cpp:
3248         (WebCore::RenderWidget::destroy):
3249         (WebCore::RenderWidget::setWidget):
3250         (WebCore::RenderWidget::paint):
3251         (WebCore::RenderWidget::setOverlapTestResult):
3252         (WebCore::RenderWidget::updateWidgetPosition):
3253         Use .get().
3254         (WebCore::RenderWidget::clearWidget):
3255         Don't call deleteWidget(). It was removed. 
3256
3257         * rendering/RenderWidget.h:
3258         Removed deleteWidget(). Made m_widget a RefPtr.
3259         (WebCore::RenderWidget::widget):
3260         Use .get().
3261
3262 2009-07-09  Chris Fleizach  <cfleizach@apple.com>
3263
3264         Reviewed by Darin Adler.
3265
3266         Bug 27129 - AX: possible assertion for a non-native image in accessibility
3267         https://bugs.webkit.org/show_bug.cgi?id=27129 
3268
3269         It's possible for an image that is not really an image to assert, because its renderer
3270         is turned into a RenderImage.
3271
3272         Test: accessibility/non-native-image-crash.html
3273
3274         * accessibility/AccessibilityRenderObject.cpp:
3275         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
3276         (WebCore::RoleEntry::):
3277         * accessibility/mac/AccessibilityObjectWrapper.mm:
3278         (-[AccessibilityObjectWrapper roleDescription]):
3279
3280 2009-07-09  Simon Fraser  <simon.fraser@apple.com>
3281
3282         Build fix for SnowLeopard.
3283         
3284         Avoid using the contentsTransform methods if not on Leopard, because
3285         we don't need to call them.
3286
3287         * platform/graphics/mac/GraphicsLayerCA.mm:
3288         (WebCore::GraphicsLayerCA::updateContentsTransform):
3289         * platform/graphics/mac/WebLayer.mm:
3290         (-[WebLayer setNeedsDisplayInRect:]):
3291         * platform/graphics/mac/WebTiledLayer.mm:
3292         (-[WebTiledLayer setNeedsDisplayInRect:]):
3293
3294 2009-07-09  Simon Fraser  <simon.fraser@apple.com>
3295
3296         Reviewed by Dave Hyatt
3297
3298         Improve the appearance of text in compositing layers when -[CALayer geometryFlipped]
3299         is not available.
3300         <rdar://problem/6120614>
3301
3302         * platform/graphics/GraphicsLayer.h:
3303         (WebCore::GraphicsLayer::setContentsOrientation):
3304         (WebCore::GraphicsLayer::contentsOrientation):
3305         * platform/graphics/GraphicsLayer.cpp:
3306         (WebCore::GraphicsLayer::GraphicsLayer):
3307         Add a m_contentsOrientation member and getter/setter to control whether
3308         the contents of this layer have a transform applied to them before display.
3309
3310         * platform/graphics/mac/GraphicsLayerCA.h:
3311         New method to return the default contents orientation.
3312
3313         * platform/graphics/mac/GraphicsLayerCA.mm:
3314         (WebCore::flipTransform):
3315         Convenience method to return a transform with a Y flip.
3316
3317         (WebCore::GraphicsLayerCA::GraphicsLayerCA):
3318         (WebCore::GraphicsLayerCA::setSize):
3319         After the size changes we have to update the contentsTransform.
3320
3321         (WebCore::GraphicsLayerCA::setGeometryOrientation):
3322         (WebCore::GraphicsLayerCA::geometryOrientation):
3323         If -setGeometryFlipped: is not available, use a children transform.
3324         
3325         (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
3326         Tiled layers have issues with flipped contentsTransform, so just use
3327         top-down drawing for them. Call updateContentsTransform() to set the
3328         new contents transform after swapping layers.
3329         
3330         (WebCore::GraphicsLayerCA::defaultContentsOrientation):
3331         Use bottom-up when -geometryFlipped is not available, otherwise top-down.
3332         
3333         (WebCore::GraphicsLayerCA::updateContentsTransform):
3334         Set the layer contents transform based on contentsOrientation().
3335
3336         (WebCore::GraphicsLayerCA::setContentsLayer):
3337         We have to manually flip contents layers if we're not using -geometryFlipped.
3338         
3339         * platform/graphics/mac/WebLayer.h:
3340         * platform/graphics/mac/WebLayer.mm:
3341         Do early return if layerContents is nil. Flip the CTM if the layer has
3342         bottom-up coordinates, so that CG sees a CTM with no flip.
3343         Do the CGContextRestoreGState() after drawing the debug indicator.
3344         
3345         (-[WebLayer setNeedsDisplayInRect:]):
3346         * platform/graphics/mac/WebTiledLayer.mm:
3347         (-[WebTiledLayer setNeedsDisplayInRect:]):
3348         Need to map the dirty rect through the contentsTransform.
3349
3350 2009-07-09  Alexey Proskuryakov  <ap@webkit.org>
3351
3352         Reviewed by Geoff Garen.
3353
3354         <rdar://problem/6921671> Visit counter shouldn't be incremented by redirects.
3355
3356         Can't test this functionality with layout tests.
3357
3358         * WebCore.base.exp:
3359         * history/HistoryItem.cpp:
3360         (WebCore::HistoryItem::recordVisitAtTime):
3361         (WebCore::HistoryItem::visited):
3362         * history/HistoryItem.h:
3363         Only increase visit count if explicitly told to. Now, some visits change last access time,
3364         but do not increase visit count.
3365
3366 2009-07-09  Eric Carlson  <eric.carlson@apple.com>
3367
3368         Reviewed by Simon Fraser.
3369
3370         <rdar://problem/7046098> MediaControllerThemeQT requires QuickTime 7.6.3
3371
3372         Require QuickTime 7.6.3 or higher to enable the new media controller UI.
3373
3374         * rendering/RenderThemeMac.mm:
3375         (WebCore::mediaControllerTheme):
3376
3377 2009-07-09  Sam Weinig  <sam@webkit.org>
3378
3379         Reviewed by Beth Dakin.
3380
3381         Remove incorrect comment.
3382
3383         * page/MouseEventWithHitTestResults.h:
3384
3385 2009-07-09  Mads Ager  <ager@chromium.org>
3386
3387         Reviewed by Dimitri Glazkov.
3388
3389         Update the V8 bindings codegenerator to use the RGBColor::create
3390         method to handle refcounts for RGBColor objects correctly.
3391         
3392        * bindings/scripts/CodeGeneratorV8.pm: Use RGBColor::create to create RGBColor objects.
3393
3394 2009-07-09  Eric Carlson  <eric.carlson@apple.com>
3395
3396         Reviewed by Adele Peterson.
3397
3398         Crash in RenderMedia::styleDidChange.
3399         <rdar://problem/7044313> CrashTracer: quicklook crashed generating thumbnail for page with 
3400         media element (RenderMedia::styleDidChange + 115)
3401
3402         Speculative fix for crash in styleDidChange. Null check controller elements before tell
3403         them to update style.
3404
3405         * rendering/RenderMedia.cpp:
3406         (WebCore::RenderMedia::styleDidChange):
3407
3408 2009-07-09  Adam Barth  <abarth@webkit.org>
3409
3410         Reviewed by Dimitri Glazkov.
3411
3412         [V8] Move V8DOMWrapper to its own file
3413         https://bugs.webkit.org/show_bug.cgi?id=27121
3414
3415         * bindings/v8/V8DOMWrapper.cpp: Added.
3416         (WebCore::GetToStringName):
3417         (WebCore::ConstructorToString):
3418         (WebCore::V8DOMWrapper::convertSVGElementInstanceToV8Object):
3419         (WebCore::V8DOMWrapper::convertSVGObjectWithContextToV8Object):
3420         (WebCore::V8DOMWrapper::domObjectHasJSWrapper):
3421         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
3422         (WebCore::V8DOMWrapper::setJSWrapperForActiveDOMObject):
3423         (WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
3424         (WebCore::V8DOMWrapper::getTemplate):
3425         (WebCore::V8DOMWrapper::convertToV8Object):
3426         (WebCore::V8DOMWrapper::setHiddenWindowReference):
3427         (WebCore::V8DOMWrapper::domWrapperType):
3428         (WebCore::V8DOMWrapper::convertToNativeObjectImpl):
3429         (WebCore::V8DOMWrapper::convertToSVGPODTypeImpl):
3430         (WebCore::V8DOMWrapper::lookupDOMWrapper):
3431         (WebCore::V8DOMWrapper::convertDOMWrapperToNodeHelper):
3432         (WebCore::V8DOMWrapper::wrapNativeNodeFilter):
3433         (WebCore::V8DOMWrapper::instantiateV8Object):
3434         (WebCore::V8DOMWrapper::setDOMWrapper):
3435         (WebCore::V8DOMWrapper::maybeDOMWrapper):
3436         (WebCore::V8DOMWrapper::isDOMEventWrapper):
3437         (WebCore::V8DOMWrapper::isWrapperOfType):
3438         (WebCore::V8DOMWrapper::htmlElementType):
3439         (WebCore::V8DOMWrapper::svgElementType):
3440         (WebCore::V8DOMWrapper::convertEventToV8Object):
3441         (WebCore::):
3442         (WebCore::V8DOMWrapper::convertNodeToV8Object):
3443         (WebCore::V8DOMWrapper::convertEventTargetToV8Object):
3444         (WebCore::V8DOMWrapper::convertEventListenerToV8Object):
3445         (WebCore::V8DOMWrapper::convertDOMImplementationToV8Object):
3446         (WebCore::V8DOMWrapper::convertStyleSheetToV8Object):
3447         (WebCore::V8DOMWrapper::convertCSSValueToV8Object):
3448         (WebCore::V8DOMWrapper::convertCSSRuleToV8Object):
3449         (WebCore::V8DOMWrapper::convertWindowToV8Object):
3450         * bindings/v8/V8DOMWrapper.h: Added.
3451         (WebCore::V8DOMWrapper::convertDOMWrapperToNative):
3452         (WebCore::V8DOMWrapper::wrapCPointer):
3453         (WebCore::V8DOMWrapper::extractCPointer):
3454         (WebCore::V8DOMWrapper::convertDOMWrapperToNode):
3455         (WebCore::V8DOMWrapper::convertToV8Object):
3456         (WebCore::V8DOMWrapper::convertToNativeObject):
3457         (WebCore::V8DOMWrapper::convertToNativeEvent):
3458         (WebCore::V8DOMWrapper::extractCPointerImpl):
3459         (WebCore::V8DOMWrapper::instantiateV8Object):
3460         * bindings/v8/V8Proxy.cpp:
3461         * bindings/v8/V8Proxy.h:
3462
3463 2009-07-09  David Hyatt  <hyatt@apple.com>
3464
3465         Reviewed by Adele Peterson.
3466
3467         Crash in setFocusedFrame.
3468         <rdar://7032869> Crashing in setFocusedFrame on blogger.com.
3469
3470         Speculative fix for crasher in setFocusedFrame.  Make sure to ref both frames and fire
3471         the events only after the local member has been updated.
3472
3473         * page/FocusController.cpp:
3474         (WebCore::FocusController::setFocusedFrame):
3475
3476 2009-07-09  Eric Carlson  <eric.carlson@apple.com>
3477
3478         Reviewed by Adele Peterson.
3479
3480         Possible crashes when mouse clicks not dispatched because range input destroyed while 
3481         thumb is being dragged (e.g. scrub to end of movie)
3482         <rdar://problem/7037494> 
3483         https://bugs.webkit.org/show_bug.cgi?id=27101
3484
3485         Some shadow nodes "capture" all mouse events from mouseDown to mouseUp so they continue to 
3486         get mouse events even when the mouse is moved outside of the node. This is done by putting
3487         EventHandler into a mode where it sends all mouse events to the node regardless of the
3488         actual mouse position. The mode is set on mouseDown and cleared on mouseUp but if the
3489         node is deleted while in this mode, the mouseUp is never sent and EventHandler continues
3490         to try to send events to the deleted node. This sometimes results in a crash, and sometimes
3491         in a page that doesn't respond to click events.
3492
3493         Tests: fast/forms/search-delete-while-cancel-button-clicked.html
3494                fast/forms/slider-delete-while-dragging-thumb.html
3495                media/audio-delete-while-slider-thumb-clicked.html
3496                media/audio-delete-while-step-button-clicked.html
3497
3498         * rendering/MediaControlElements.cpp:
3499         (WebCore::MediaControlSeekButtonElement::detach):
3500             New, call setCapturingMouseEventsNode if capturing mouse events.
3501         * rendering/MediaControlElements.h:
3502             Declare detach().
3503
3504         * rendering/RenderSlider.cpp:
3505         (WebCore::SliderThumbElement::detach):
3506             New, call setCapturingMouseEventsNode if capturing mouse events.
3507
3508         * rendering/TextControlInnerElements.cpp:
3509         (WebCore::SearchFieldCancelButtonElement::detach):
3510             New, call setCapturingMouseEventsNode if capturing mouse events.
3511         * rendering/TextControlInnerElements.h:
3512             Declare detach().
3513
3514 2009-07-09  Yury Semikhatsky  <yurys@chromium.org>
3515
3516         Reviewed by Dimitri Glazkov.
3517
3518         Enter the Frame's context before creating new objects in setContextDebugId.
3519
3520         https://bugs.webkit.org/show_bug.cgi?id=27112
3521
3522         * bindings/v8/V8Proxy.cpp:
3523         (WebCore::V8Proxy::setContextDebugId):
3524
3525 2009-07-09  Simon Hausmann  <hausmann@webkit.org>
3526
3527         Fix the Qt build.
3528
3529         * WebCore.pro: Add new storage impl files to the build.
3530
3531 2009-07-08  Adam Barth  <abarth@webkit.org>
3532
3533         Rubber stamped by Eric Seidel.
3534
3535         [V8] Move DOM wrapper functions in V8Proxy to V8DOMWrapper
3536         https://bugs.webkit.org/show_bug.cgi?id=27107
3537
3538         This patch is just renaming.  Code motion will occur next.
3539
3540         * bindings/scripts/CodeGeneratorV8.pm:
3541         * bindings/v8/ScriptController.cpp:
3542         (WebCore::ScriptController::processingUserGesture):
3543         (WebCore::createScriptObject):
3544         (WebCore::ScriptController::createScriptObjectForPluginElement):
3545         * bindings/v8/ScriptObject.cpp:
3546         (WebCore::ScriptGlobalObject::set):
3547         * bindings/v8/ScriptObjectQuarantine.cpp:
3548         (WebCore::getQuarantinedScriptObject):
3549         * bindings/v8/V8AbstractEventListener.cpp:
3550         (WebCore::V8AbstractEventListener::handleEvent):
3551         (WebCore::V8AbstractEventListener::getReceiverObject):
3552         * bindings/v8/V8Collection.cpp:
3553         (WebCore::toOptionsCollectionSetter):
3554         * bindings/v8/V8Collection.h:
3555         (WebCore::getV8Object):
3556         (WebCore::getNamedPropertyOfCollection):
3557         (WebCore::nodeCollectionNamedPropertyGetter):
3558         (WebCore::getIndexedPropertyOfCollection):
3559         (WebCore::nodeCollectionIndexedPropertyGetter):
3560         (WebCore::nodeCollectionIndexedPropertyEnumerator):
3561         (WebCore::collectionIndexedPropertyEnumerator):
3562         (WebCore::collectionStringOrNullIndexedPropertyGetter):
3563         * bindings/v8/V8DOMMap.cpp:
3564         (WebCore::DOMData::handleWeakObject):
3565         (WebCore::DOMData::removeObjectsFromWrapperMap):
3566         * bindings/v8/V8GCController.cpp:
3567         (WebCore::enumerateDOMObjectMap):
3568         (WebCore::DOMObjectVisitor::visitDOMWrapper):
3569         (WebCore::GCPrologueVisitor::visitDOMWrapper):
3570         (WebCore::GCEpilogueVisitor::visitDOMWrapper):
3571         * bindings/v8/V8Helpers.cpp:
3572         (WebCore::wrapNPObject):
3573         * bindings/v8/V8NodeFilterCondition.cpp:
3574         (WebCore::V8NodeFilterCondition::acceptNode):
3575         * bindings/v8/V8Proxy.cpp:
3576         (WebCore::V8DOMWrapper::convertSVGElementInstanceToV8Object):
3577         (WebCore::V8DOMWrapper::convertSVGObjectWithContextToV8Object):
3578         (WebCore::V8DOMWrapper::domObjectHasJSWrapper):
3579         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
3580         (WebCore::V8DOMWrapper::setJSWrapperForActiveDOMObject):
3581         (WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
3582         (WebCore::V8Proxy::evaluateInNewContext):
3583         (WebCore::V8Proxy::getConstructor):
3584         (WebCore::V8DOMWrapper::getTemplate):
3585         (WebCore::V8Proxy::retrieveWindow):
3586         (WebCore::V8Proxy::updateDocumentWrapperCache):
3587         (WebCore::V8Proxy::clearForNavigation):
3588         (WebCore::V8Proxy::installDOMWindow):
3589         (WebCore::setDOMExceptionHelper):
3590         (WebCore::V8DOMWrapper::convertToV8Object):
3591         (WebCore::V8DOMWrapper::setHiddenWindowReference):
3592         (WebCore::V8DOMWrapper::domWrapperType):
3593         (WebCore::V8DOMWrapper::convertToNativeObjectImpl):
3594         (WebCore::V8DOMWrapper::convertToSVGPODTypeImpl):
3595         (WebCore::V8DOMWrapper::lookupDOMWrapper):
3596         (WebCore::V8DOMWrapper::convertDOMWrapperToNodeHelper):
3597         (WebCore::V8DOMWrapper::wrapNativeNodeFilter):
3598         (WebCore::V8DOMWrapper::instantiateV8Object):
3599         (WebCore::V8DOMWrapper::setDOMWrapper):
3600         (WebCore::V8DOMWrapper::maybeDOMWrapper):
3601         (WebCore::V8DOMWrapper::isDOMEventWrapper):
3602         (WebCore::V8DOMWrapper::isWrapperOfType):
3603         (WebCore::V8DOMWrapper::htmlElementType):
3604         (WebCore::V8DOMWrapper::svgElementType):
3605         (WebCore::V8DOMWrapper::convertEventToV8Object):
3606         (WebCore::V8DOMWrapper::convertNodeToV8Object):
3607         (WebCore::V8DOMWrapper::convertEventTargetToV8Object):
3608         (WebCore::V8DOMWrapper::convertEventListenerToV8Object):
3609         (WebCore::V8DOMWrapper::convertDOMImplementationToV8Object):
3610         (WebCore::V8DOMWrapper::convertStyleSheetToV8Object):
3611         (WebCore::V8DOMWrapper::convertCSSValueToV8Object):
3612         (WebCore::V8DOMWrapper::convertCSSRuleToV8Object):