1 2009-07-14 Dmitry Titov <dimich@chromium.org>
3 Reviewed by Darin Adler.
5 https://bugs.webkit.org/show_bug.cgi?id=27266
6 Add hasCurrentPoint() to WebCore::Path.
7 This fixes Skia-based Chromium regression caused by the fix for
8 https://bugs.webkit.org/show_bug.cgi?id=27187.
9 For Skia, the new method always returns 'true', pending actual implementation.
10 This means Chromium still will differ from Gecko behavior, but at least its Canvas
11 will not be completely broken.
13 Existing Canvas Layout Tests should pass in Chromium after this change.
15 * html/CanvasRenderingContext2D.cpp:
16 (WebCore::CanvasRenderingContext2D::lineTo): insteand of Path::isEmpty() test for hasCurrentPoint().
17 (WebCore::CanvasRenderingContext2D::quadraticCurveTo): ditto.
18 (WebCore::CanvasRenderingContext2D::bezierCurveTo): ditto.
20 * platform/graphics/Path.h:
21 * platform/graphics/cairo/PathCairo.cpp:
22 (WebCore::Path::hasCurrentPoint):
23 * platform/graphics/cg/PathCG.cpp:
24 (WebCore::Path::isEmpty):
25 (WebCore::Path::hasCurrentPoint):
26 * platform/graphics/qt/PathQt.cpp:
27 (WebCore::Path::hasCurrentPoint):
28 * platform/graphics/skia/PathSkia.cpp:
29 (WebCore::Path::hasCurrentPoint):
30 * platform/graphics/wx/PathWx.cpp:
31 (WebCore::Path::hasCurrentPoint):
32 All these files add a Path::hasCurrentPoint() for various platforms.
34 2009-07-14 Nate Chapin <japhet@chromium.org>
36 Reviewed by Sam Weinig.
38 Upstream RGBColor from src.chromium.org.
40 https://bugs.webkit.org/show_bug.cgi?id=27133
42 * WebCore.gypi: Add RGBColor
43 * css/RGBColor.cpp: Added.
44 (WebCore::RGBColor::create):
45 (WebCore::RGBColor::red):
46 (WebCore::RGBColor::green):
47 (WebCore::RGBColor::blue):
48 * css/RGBColor.h: Added.
49 (WebCore::RGBColor::RGBColor):
51 2009-07-10 Matt Perry <mpcomplete@chromium.org>
53 Reviewed by Darin Fisher.
55 [V8] Rename the didCreate/DestroyScriptContext calls to make it
56 clear that that those refer to the frame's contxt. Add another
57 similar call for when creating contexts via evaluateInNewContext.
58 https://bugs.webkit.org/show_bug.cgi?id=27104
60 * bindings/v8/V8Proxy.cpp:
61 (WebCore::V8Proxy::evaluateInNewContext):
62 (WebCore::V8Proxy::disposeContextHandles):
63 (WebCore::V8Proxy::initContextIfNeeded):
64 * loader/EmptyClients.h:
65 (WebCore::EmptyFrameLoaderClient::didCreateScriptContextForFrame):
66 (WebCore::EmptyFrameLoaderClient::didDestroyScriptContextForFrame):
67 (WebCore::EmptyFrameLoaderClient::didCreateIsolatedScriptContext):
68 * loader/FrameLoaderClient.h:
70 2009-07-14 Brent Fulgham <bfulgham@webkit.org>
72 Revert http://trac.webkit.org/changeset/45864 after
73 breaking of Windows build.
75 * storage/LocalStorageTask.cpp:
76 * storage/LocalStorageTask.h:
77 * storage/Storage.cpp:
79 * storage/StorageArea.cpp:
80 * storage/StorageArea.h:
81 * storage/StorageAreaImpl.cpp:
82 * storage/StorageAreaImpl.h:
83 * storage/StorageAreaSync.cpp:
84 * storage/StorageAreaSync.h:
85 * storage/StorageEvent.cpp:
86 * storage/StorageEvent.h:
87 (WebCore::StorageEvent::create):
88 (WebCore::StorageEvent::StorageEvent):
89 * storage/StorageNamespace.h:
90 * storage/StorageNamespaceImpl.cpp:
91 * storage/StorageNamespaceImpl.h:
92 * storage/StorageSyncManager.cpp:
93 * storage/StorageSyncManager.h:
95 2009-07-11 Jeremy Orlow <jorlow@chromium.org>
97 Reviewed by Darin Adler.
99 Cleanup DOM Storage dependencies.
100 https://bugs.webkit.org/show_bug.cgi?id=27180
102 DOM Storage had several unnecessary (and probably unintended)
103 dependencies. This patch replaces many includes of header files with
104 forward declaration of classes, making some destructors explicit, and
105 taking some factories out of the header files.
107 This will allow things like StorageAreaSync to take a StorageAreaImpl*
108 (as it should) rather than a StorageArea* which previously weren't
109 possible because the dependencies were such a tangled mess.
111 * storage/LocalStorageTask.cpp:
112 (WebCore::LocalStorageTask::~LocalStorageTask):
113 * storage/LocalStorageTask.h:
114 * storage/Storage.cpp:
115 (WebCore::Storage::~Storage):
117 * storage/StorageArea.cpp:
118 * storage/StorageArea.h:
119 * storage/StorageAreaImpl.cpp:
120 * storage/StorageAreaImpl.h:
121 * storage/StorageAreaSync.cpp:
122 (WebCore::StorageAreaSync::~StorageAreaSync):
123 * storage/StorageAreaSync.h:
124 * storage/StorageEvent.cpp:
125 (WebCore::StorageEvent::create):
126 (WebCore::StorageEvent::StorageEvent):
127 * storage/StorageEvent.h:
128 * storage/StorageNamespace.h:
129 * storage/StorageNamespaceImpl.cpp:
130 * storage/StorageNamespaceImpl.h:
131 * storage/StorageSyncManager.cpp:
132 (WebCore::StorageSyncManager::~StorageSyncManager):
133 * storage/StorageSyncManager.h:
136 2009-07-14 Adam Treat <adam.treat@torchmobile.com>
138 Reviewed by David Hyatt.
140 https://bugs.webkit.org/show_bug.cgi?id=26983
142 Check to make sure the view is attached to a frame() in the visibleContentsResized()
143 method as it can be triggered before the view is attached by Frame::createView(...)
144 setting various values such as setScrollBarModes(...) for example. An ASSERT is
145 triggered when a view is layout before being attached to a frame().
147 * page/FrameView.cpp:
148 (WebCore::FrameView::visibleContentsResized):
151 2009-07-14 Pavel Feldman <pfeldman@chromium.org>
153 Reviewed by Timothy Hatcher.
155 WebInspector: show last opened panel when invoking inspector.
157 https://bugs.webkit.org/show_bug.cgi?id=27263
159 * inspector/InspectorController.cpp:
160 (WebCore::InspectorController::InspectorController):
161 (WebCore::InspectorController::setWindowVisible):
162 (WebCore::InspectorController::storeLastActivePanel):
163 (WebCore::InspectorController::specialPanelForJSName):
164 * inspector/InspectorController.h:
165 (WebCore::InspectorController::Setting::Setting):
166 * inspector/InspectorController.idl:
167 * inspector/front-end/inspector.js:
168 (WebInspector.set currentPanel):
169 (WebInspector.loaded):
171 2009-07-14 Anton Muhin <antonm@chromium.org>
173 Reviewed by Dimitri Glazkov.
175 Speed up access to NodeList length.
176 https://bugs.webkit.org/show_bug.cgi?id=27264
178 That's a minimal alternation of the code.
180 * bindings/v8/custom/V8NodeListCustom.cpp:
181 (WebCore::NAMED_PROPERTY_GETTER): 1) use AtomicString for comparison, 2) use
182 v8::Integer::New instead of v8::Number::New.
184 2009-07-14 Anton Muhin <antonm@chromium.org>
186 Reviewed by Dimitri Glazkov.
188 Do not do unnecessary conversions from v8::Handle<v8::Value> to
189 v8::Handle<v8::Object> and accompanying changes.
190 https://bugs.webkit.org/show_bug.cgi?id=26953
194 1) do not cast from v8::Value to v8::Object if unnecessary---casts are cheap,
195 but are not free (they check for emptiness of handle);
196 2) inline conversion from wrapper to node;
197 3) simplify case to an ASSERT.
199 This is just a refactoring, so no new tests are needed.
201 * bindings/scripts/CodeGeneratorV8.pm:
202 * bindings/v8/V8Proxy.cpp:
203 (WebCore::V8Proxy::evaluateInNewContext):
204 (WebCore::V8Proxy::convertToSVGPODTypeImpl):
205 * bindings/v8/V8Proxy.h:
206 (WebCore::V8Proxy::convertDOMWrapperToNative):
207 (WebCore::V8Proxy::convertToNativeObject):
208 (WebCore::V8Proxy::convertToNativeEvent):
209 * bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp:
210 (WebCore::toCanvasStyle):
211 (WebCore::CALLBACK_FUNC_DECL):
212 * bindings/v8/custom/V8CustomBinding.cpp:
213 (WebCore::V8Custom::GetTargetFrame):
214 * bindings/v8/custom/V8DOMWindowCustom.cpp:
215 (WebCore::CALLBACK_FUNC_DECL):
216 (WebCore::V8Custom::ClearTimeoutImpl):
217 (WebCore::NAMED_ACCESS_CHECK):
218 (WebCore::INDEXED_ACCESS_CHECK):
219 * bindings/v8/custom/V8DocumentCustom.cpp:
220 (WebCore::CALLBACK_FUNC_DECL):
221 * bindings/v8/custom/V8LocationCustom.cpp:
222 (WebCore::CALLBACK_FUNC_DECL):
224 2009-07-14 Darin Adler <darin@apple.com>
226 Reviewed by Dan Bernstein.
228 Straight quotes should match fancy quotes in in-page search
229 https://bugs.webkit.org/show_bug.cgi?id=27217
231 Tests: fast/text/find-quotes.html
233 * editing/TextIterator.cpp:
234 (WebCore::foldQuoteMark): Added.
235 (WebCore::foldQuoteMarks): Added.
236 (WebCore::SearchBuffer::SearchBuffer): Call foldQuoteMarks on the target string.
237 (WebCore::SearchBuffer::append): Call foldQuoteMarks on characters as they are
238 added to the search buffer.
240 * platform/text/CharacterNames.h: Added more quotation mark character names.
241 Sorted character names with the sort tool.
243 2009-07-13 Pavel Feldman <pfeldman@chromium.org>
245 Reviewed by Timothy Hatcher.
247 WebInspector: handle debugger shortcuts while on source frame or on
248 script file selector.
250 https://bugs.webkit.org/show_bug.cgi?id=27224
252 * inspector/front-end/ScriptsPanel.js:
253 (WebInspector.ScriptsPanel):
254 * inspector/front-end/SourceFrame.js:
255 (WebInspector.SourceFrame.prototype._loaded):
257 2009-07-13 Sam Weinig <sam@webkit.org>
259 Reviewed by Darin Adler.
261 Use standard HashCountedSet instead of a hand rolled one
264 * html/HTMLDocument.cpp:
265 (WebCore::addItemToMap):
266 (WebCore::removeItemFromMap):
267 * html/HTMLDocument.h:
269 2009-07-13 Erik Arvidsson <arv@chromium.org>
271 Reviewed by Darin Adler and Maciej Stachowiak.
273 Implement HTML5 draggable
274 https://bugs.webkit.org/show_bug.cgi?id=26262
276 This adds support for the HTML5 draggable attribute and its DOM binding. It maps the draggable property
277 to the CSS properties -webkit-user-drag and -webkit-user-select respectively.
279 Spec: http://www.whatwg.org/specs/web-apps/current-work/multipage/editing.html#the-draggable-attribute
281 Test: fast/html/draggable.html
284 * html/HTMLAnchorElement.cpp:
285 (WebCore::HTMLAnchorElement::draggable):
286 * html/HTMLAnchorElement.h:
287 * html/HTMLAttributeNames.in:
288 * html/HTMLElement.cpp:
289 (WebCore::HTMLElement::draggable):
290 (WebCore::HTMLElement::setDraggable):
291 * html/HTMLElement.h:
292 * html/HTMLElement.idl:
293 * html/HTMLImageElement.cpp:
294 (WebCore::HTMLImageElement::draggable):
295 * html/HTMLImageElement.h:
297 2009-07-13 Simon Fraser <simon.fraser@apple.com>
299 Reviewed by Dan Bernstein.
301 Image rendered as layer contents looks different from image rendered via CG.
302 <rdar://problem/7048830>
304 Fix a visible color profile difference between between images rendered via Core Graphics
305 and those rendered via a compositing layer, by assigning the GenericRGB profile to
306 untagged images (which come through as having the DeviceRGB profile) when they are set
309 Test: compositing/color-matching/image-color-matching.html
311 * platform/graphics/mac/GraphicsLayerCA.mm:
312 (WebCore::GraphicsLayerCA::setContentsToImage):
314 2009-07-13 Darin Adler <darin@apple.com>
316 Reviewed by Oliver Hunt.
318 https://bugs.webkit.org/show_bug.cgi?id=27220
319 Assertion failure in createSearcher() (usearch_open() status is U_USING_DEFAULT_WARNING)
321 * editing/TextIterator.cpp:
322 (WebCore::createSearcher): Add U_USING_DEFAULT_WARNING as a possible status code
323 in the assertion. Affects only the assertion.
325 2009-07-13 Alexey Proskuryakov <ap@webkit.org>
327 Reviewed by Darin Adler.
329 https://bugs.webkit.org/show_bug.cgi?id=26925
330 <rdar://problem/7027850> URL Fragment Breaks Application Cache Loads
332 Test: http/tests/appcache/main-resource-hash.html
334 * loader/appcache/ApplicationCache.cpp:
335 (WebCore::ApplicationCache::resourceForURL):
336 (WebCore::ApplicationCache::resourceForRequest):
337 * loader/appcache/ApplicationCacheGroup.cpp:
338 (WebCore::ApplicationCacheGroup::cacheForMainRequest):
339 (WebCore::ApplicationCacheGroup::fallbackCacheForMainRequest):
340 (WebCore::ApplicationCacheGroup::selectCache):
341 (WebCore::ApplicationCacheGroup::finishedLoadingMainResource):
342 (WebCore::ApplicationCacheGroup::didReceiveResponse):
343 (WebCore::ApplicationCacheGroup::didFail):
344 (WebCore::ApplicationCacheGroup::addEntry):
345 Remove URL fragment at appcache code borders.
347 * loader/appcache/ApplicationCacheResource.h:
348 (WebCore::ApplicationCacheResource::create):
349 * loader/appcache/ApplicationCacheStorage.cpp:
350 (WebCore::ApplicationCacheStorage::findOrCreateCacheGroup):
351 (WebCore::ApplicationCacheStorage::cacheGroupForURL):
352 (WebCore::ApplicationCacheStorage::fallbackCacheGroupForURL):
353 Assert that there is no URL fragment in URL at key points in appcache code.
355 2009-07-13 Darin Adler <darin@apple.com>
357 Reviewed by Dan Bernstein.
359 https://bugs.webkit.org/show_bug.cgi?id=27166
360 rdar://problem/7015857
361 Find for strings composed entirely of spaces doesn't work
363 Test: fast/text/find-spaces.html
365 * editing/TextIterator.cpp:
366 (WebCore::findPlainText): Removed unneeded special case.
367 The empty string case already works correctly.
369 2009-07-13 Anders Carlsson <andersca@apple.com>
371 Reviewed by Kevin Decker.
373 Remove NPPVpluginPrivateModeBool, it was removed from the spec.
377 2009-07-13 Feng Qian <feng@chromium.org>
379 Reviewed by Dimitri Glazkov.
381 Fix for https://bugs.webkit.org/show_bug.cgi?id=27237
383 Make V8DOMMap.h compiling with gcc option -Werror=non=virtual-dtor.
385 * bindings/v8/V8DOMMap.h:
386 (WebCore::WeakReferenceMap::WeakReferenceMap):
387 (WebCore::WeakReferenceMap::~WeakReferenceMap):
389 2009-07-13 Dimitri Glazkov <dglazkov@chromium.org>
391 Reviewed by Darin Fisher.
393 Remove an accidental add of bidi.(cpp|h) to WebCore.gypi.
395 * WebCore.gypi: Removed bidi.cpp and bidi.h
397 2009-07-13 Dimitri Glazkov <dglazkov@chromium.org>
399 Reviewed by Darin Fisher.
401 Update WebCore.gyp in preparation to hooking it up.
403 * WebCore.gypi: Added files that were mid-stream while switching over.
405 2009-07-13 Dmitry Titov <dimich@chromium.org>
407 Not reviewed, another small fix for Chromium build.
409 * bindings/v8/ScriptController.cpp:
410 (WebCore::ScriptController::evaluate):
412 2009-07-13 Dmitry Titov <dimich@chromium.org>
414 Not reviewed, fix Chromium build bustage.
416 * bindings/v8/ScriptController.cpp:
417 (WebCore::ScriptController::evaluate):
418 * bindings/v8/V8Proxy.cpp:
419 (WebCore::JavaScriptConsoleMessage::addToPage):
420 * bindings/v8/WorkerContextExecutionProxy.cpp:
421 (WebCore::handleConsoleMessage):
423 2009-07-13 Sam Weinig <sam@webkit.org>
425 Reviewed by Darin Adler.
427 Fix for https://bugs.webkit.org/show_bug.cgi?id=27234
428 <rdar://problem/7054356>
430 Add null page check in HTMLDocument::hasFocus.
432 Test: fast/dom/HTMLDocument/hasFocus-frameless-crash.html
434 * html/HTMLDocument.cpp:
435 (WebCore::HTMLDocument::hasFocus): Add page null check.
436 (WebCore::HTMLDocument::createTokenizer): Cleanup page null check.
438 2009-07-13 Dan Bernstein <mitz@apple.com>
440 Reviewed by Darin Adler.
442 Disable continuous spell checking in the inspector
443 https://bugs.webkit.org/show_bug.cgi?id=27131
445 * inspector/front-end/inspector.html: Added spellcheck="false" to the
446 main-panels and console-prompt containers.
448 2009-07-13 Adam Langley <agl@google.com>
450 Reviewed by Eric Seidel.
452 Chromium Linux: fix assertion when rendering google.com.kh
454 https://bugs.webkit.org/show_bug.cgi?id=26924
456 Some shapers (i.e. Khmer) will produce cluster logs which report that
457 /no/ code points contributed to certain glyphs. Because of this, we
458 take any code point which contributed to the glyph in question, or any
459 subsequent glyph. If we run off the end, then we take the last code
462 Added LayoutTests/fast/text/international/khmar-selection.html
464 * platform/graphics/chromium/FontLinux.cpp:
465 (WebCore::Font::offsetForPositionForComplexText):
467 2009-07-13 Dan Bernstein <mitz@apple.com>
469 Reviewed by Darin Adler.
471 spellcheck="false" is ignored
472 <rdar://problem/7054177>
474 * editing/Editor.cpp:
475 (WebCore::markMisspellingsOrBadGrammar): Moved code to check the
476 spellcheck attribute from here...
477 (WebCore::Editor::spellCheckingEnabledInFocusedNode): ...to here.
478 (WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges): Bail out
479 if spell chcking is disabled by the spellcheck attribute.
482 2009-07-13 Brent Fulgham <bfulgham@webkit.org>
484 Reviewed by Adam Roben.
486 Add new configuration flag for redistributable Windows build.
487 https://bugs.webkit.org/show_bug.cgi=27087
489 * WebCore.vcproj/WebCore.vcproj: Add new WinCairo.vsprops to
490 Debug_Cairo and Release_Cairo builds.
491 * config.h: Check for presence of WIN_CAIRO and select appropriate
492 configuration. Defaults to standard Apple build.
494 2009-07-13 Peter Kasting <pkasting@google.com>
496 https://bugs.webkit.org/show_bug.cgi?id=19562
497 Back out previous patch for this bug (too many problems).
499 * DerivedSources.cpp:
500 * DerivedSources.make:
504 * WebCore.vcproj/WebCore.vcproj:
505 * WebCore.xcodeproj/project.pbxproj:
506 * WebCoreSources.bkl:
507 * html/HTMLButtonElement.idl:
508 * html/HTMLFieldSetElement.idl:
509 * html/HTMLFormControlElement.cpp:
510 * html/HTMLFormControlElement.h:
511 (WebCore::HTMLFormControlElement::form):
512 * html/HTMLInputElement.idl:
513 * html/HTMLSelectElement.idl:
514 * html/HTMLTextAreaElement.idl:
515 * html/ValidityState.cpp: Removed.
516 * html/ValidityState.h: Removed.
517 * html/ValidityState.idl: Removed.
519 2009-07-13 Nate Chapin <japhet@chromium.org>
521 Reviewed by Dimitri Glazkov.
523 Add HTMLAllCollection to WebCore.gypi.
525 https://bugs.webkit.org/show_bug.cgi?id=27223
527 * WebCore.gypi: Add HTMLAllCollection.
529 2009-07-13 Dimitri Glazkov <dglazkov@chromium.org>
531 Reviewed by Darin Fisher.
533 [V8] Add a missing check for constructor call in WebKitCSSMatrixConstructor.
534 https://bugs.webkit.org/show_bug.cgi?id=27218
536 Test: fast/css/matrix-as-function-crash.html
538 * bindings/v8/custom/V8WebKitCSSMatrixConstructor.cpp:
539 (WebCore::CALLBACK_FUNC_DECL): Added a check for constructor call.
541 2009-07-13 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
543 Unreviewed make dist build fix.
547 2009-07-13 Cédric Luthi <cedric.luthi@gmail.com>
549 Reviewed by Tor Arne Vestbø.
551 Fix NPWindow clip rect in PluginViewMac
553 The rect should be in window-coordinates. This bug can be observed
554 with Flash 10 here: http://www.permadi.com/tutorial/cursorTracker/
556 * plugins/mac/PluginViewMac.cpp:
558 2009-07-13 Simon Hausmann <hausmann@webkit.org>
560 Reviewed by Ariya Hidayat.
562 Fix Qt implementation of WebCore::directoryName to return the absolute
563 directory name instead of the base file name.
565 * platform/qt/FileSystemQt.cpp:
566 (WebCore::directoryName):
568 2009-07-13 Simon Hausmann <hausmann@webkit.org>
570 Reviewed by Ariya Hidayat.
572 Fix WebCore::Path::isEmpty() for the Qt port to return true
573 if there is no element in the path.
575 QPainterPath::isEmpty() returns also true if there is one single
576 MoveTo element inside, which makes sense but doesn't patch Webcore's
579 * platform/graphics/qt/PathQt.cpp:
580 (WebCore::Path::isEmpty): Use elementCount() == 0.
582 2009-07-13 Albert J. Wong <ajwong@chromium.org>
584 Reviewed by Dimitri Glazkov.
586 Upstream fixes to NPV8Object.cpp that make ~30 layout tests pass.
587 https://bugs.webkit.org/show_bug.cgi?id=27127
589 There were a number of bugs introduced during the last upstreaming
590 effort that broke around 30 layout tests. This fixes those bugs.
591 It also has compile fixes to match the recent cutting apart of
594 * bindings/v8/NPV8Object.cpp:
596 (npCreateV8ScriptObject):
599 (NPN_EvaluateHelper):
603 2009-07-13 Mads Ager <ager@chromium.org>
605 Reviewed by Adam Barth.
607 Fix memory leak in the V8 binding layer.
608 https://bugs.webkit.org/show_bug.cgi?id=27163
610 Reinitializing the context is not necessary when clearing the proxy for navigation
611 and it will lead us to hold on to an empty context for each frame.
613 Test for empty context instead of empty global object handle when
614 updating the document for a context.
616 * bindings/v8/V8Proxy.cpp:
617 (WebCore::V8Proxy::clearForNavigation):
618 (WebCore::V8Proxy::updateDocument):
620 2009-07-13 John Gregg <johnnyg@google.com>
622 Reviewed by David Levin.
624 Correct the logic to determine if a V8 callback returns a value.
625 https://bugs.webkit.org/show_bug.cgi?id=27155
627 * bindings/v8/custom/V8CustomVoidCallback.cpp:
628 (WebCore::invokeCallback):
629 - Don't crash if result.IsEmpty().
631 2009-07-13 Drew Wilson <atwilson@google.com>
633 Reviewed by David Levin.
635 Add ENABLE(SHARED_WORKERS) flag and define SharedWorker APIs
636 https://bugs.webkit.org/show_bug.cgi?id=26932
638 Initial IDL definition and bindings for SharedWorkers.
640 * Configurations/FeatureDefines.xcconfig:
641 Added new files for SharedWorker support.
642 * DerivedSources.make:
643 Added new files for SharedWorker support.
645 Added new files for SharedWorker support.
647 Added new files for SharedWorker support.
649 Added new files for SharedWorker support.
650 * WebCore.xcodeproj/project.pbxproj:
651 Added new files for SharedWorker support.
652 * bindings/js/JSAbstractWorkerCustom.cpp: Added.
653 (WebCore::JSAbstractWorker::mark):
654 Custom mark handler that marks the event listeners.
655 (WebCore::JSAbstractWorker::addEventListener):
656 (WebCore::JSAbstractWorker::removeEventListener):
657 (WebCore::JSAbstractWorker::toJS):
658 Custom toJS handler which differentiates between various subclasses.
659 * bindings/js/JSDOMWindowCustom.cpp:
660 (WebCore::JSDOMWindow::sharedWorker):
661 SharedWorker constructor (only enabled when SHARED_WORKERS is
663 * bindings/js/JSEventTarget.cpp:
665 (WebCore::toEventTarget):
666 Added support for converting to/from SharedWorkers.
667 * bindings/js/JSSharedWorkerConstructor.cpp: Added.
668 (WebCore::JSSharedWorkerConstructor::JSSharedWorkerConstructor):
669 (WebCore::constructSharedWorker):
670 (WebCore::JSSharedWorkerConstructor::getConstructData):
671 * bindings/js/JSSharedWorkerConstructor.h: Added.
672 (WebCore::JSSharedWorkerConstructor::classInfo):
673 * bindings/js/JSSharedWorkerCustom.cpp: Added.
674 (WebCore::JSSharedWorker::mark):
675 Custom mark function that marks the internal MessagePort.
676 * bindings/v8/DOMObjectsInclude.h:
677 Updated to include new header files.
678 * bindings/v8/V8Index.cpp:
679 * bindings/v8/V8Index.h:
680 * bindings/v8/custom/V8AbstractWorkerCustom.cpp: Added.
681 (WebCore::getEventListener):
682 (WebCore::ACCESSOR_GETTER):
683 (WebCore::ACCESSOR_SETTER):
684 (WebCore::CALLBACK_FUNC_DECL):
685 V8 handlers for add/removeEventListener().
686 * bindings/v8/custom/V8CustomBinding.h:
687 * bindings/v8/custom/V8SharedWorkerCustom.cpp: Added.
688 (WebCore::CALLBACK_FUNC_DECL):
689 Custom constructor for SharedWorker.
690 * dom/EventTarget.cpp:
691 (WebCore::EventTarget::toSharedWorker):
693 * page/DOMWindow.idl:
694 * workers/AbstractWorker.cpp: Added.
695 (WebCore::AbstractWorker::AbstractWorker):
696 Common base class for SharedWorker and (soon) Worker. The functions below were copied from Worker.cpp.
697 This is the first step in refactoring Worker to derive from AbstractWorker to enable code sharing.
698 (WebCore::AbstractWorker::~AbstractWorker):
699 (WebCore::AbstractWorker::addEventListener):
700 (WebCore::AbstractWorker::removeEventListener):
701 (WebCore::AbstractWorker::dispatchEvent):
702 (WebCore::AbstractWorker::dispatchLoadErrorEvent):
703 (WebCore::AbstractWorker::dispatchScriptErrorEvent):
704 * workers/AbstractWorker.h: Added.
705 Definitions of functionality shared by Worker.h and SharedWorker.h. In a future patch, Worker will derive from AbstractWorker.
706 (WebCore::AbstractWorker::scriptExecutionContext):
707 (WebCore::AbstractWorker::setOnerror):
708 (WebCore::AbstractWorker::onerror):
709 (WebCore::AbstractWorker::eventListeners):
710 (WebCore::AbstractWorker::refEventTarget):
711 (WebCore::AbstractWorker::derefEventTarget):
712 * workers/AbstractWorker.idl: Added.
713 * workers/SharedWorker.cpp: Added.
714 (WebCore::SharedWorker::SharedWorker):
715 (WebCore::SharedWorker::~SharedWorker):
716 * workers/SharedWorker.h: Added.
717 (WebCore::SharedWorker::create):
718 (WebCore::SharedWorker::port):
719 (WebCore::SharedWorker::toSharedWorker):
720 * workers/SharedWorker.idl: Added.
722 2009-07-13 Laszlo Gombos <laszlo.1.gombos@nokia.com>
724 Reviewed by Simon Hausmann.
726 [Qt] Cleanup - Remove prf install target
727 https://bugs.webkit.org/show_bug.cgi?id=27191
729 qtwebkit.prf has been removed; this cleans up the related
730 install target as well.
732 * WebCore.pro: Remove prf install target
734 2009-07-12 Adam Barth <abarth@webkit.org>
736 Reviewed by Oliver Hunt.
738 Facebook Chat is broken due to XSS auditor
739 https://bugs.webkit.org/show_bug.cgi?id=27179
741 Instead of just using the script's URL as to detect an XSS attack, we
742 now use a bit of context before the URL. In particular, we use the
743 bytes from the beginning of the attribute name to the end of the
744 attribute value. In virtually all injection attacks, the attacker
745 would need to supply the attribute name as well as the attribute value.
746 However, in the Facebook false positive, the attribute name is not
749 Tests: http/tests/security/xssAuditor/script-tag-src-redirect-safe.html
750 http/tests/security/xssAuditor/script-tag-with-source-double-quote.html
751 http/tests/security/xssAuditor/script-tag-with-source-no-quote.html
753 * html/HTMLTokenizer.cpp:
754 (WebCore::HTMLTokenizer::parseTag):
755 * html/HTMLTokenizer.h:
756 * page/XSSAuditor.cpp:
757 (WebCore::XSSAuditor::canLoadExternalScriptFromSrc):
760 2009-07-12 Keishi Hattori <casey.hattori@gmail.com>
762 Reviewed by Timothy Hatcher.
764 Refactor ConsoleMessage to add MessageType attribute.
765 https://bugs.webkit.org/show_bug.cgi?id=20625
767 * bindings/js/JSCustomXPathNSResolver.cpp:
768 (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
769 * bindings/js/JSDOMWindowBase.cpp:
770 (WebCore::JSDOMWindowBase::printErrorMessage):
772 (WebCore::Document::reportException):
773 (WebCore::Document::addMessage):
775 * dom/ScriptExecutionContext.h:
776 * html/HTMLParser.cpp:
777 (WebCore::HTMLParser::reportErrorToConsole):
778 * inspector/ConsoleMessage.cpp:
779 (WebCore::ConsoleMessage::ConsoleMessage):
780 (WebCore::ConsoleMessage::addToConsole):
781 (WebCore::ConsoleMessage::isEqual):
782 * inspector/ConsoleMessage.h:
783 * inspector/InspectorController.cpp:
784 (WebCore::InspectorController::addMessageToConsole):
785 (WebCore::InspectorController::startGroup):
786 (WebCore::InspectorController::endGroup):
787 (WebCore::InspectorController::addProfileFinishedMessageToConsole):
788 (WebCore::InspectorController::addStartProfilingMessageToConsole):
789 (WebCore::InspectorController::count):
790 * inspector/InspectorController.h:
791 * inspector/front-end/Console.js:
792 (WebInspector.Console.prototype.addMessage):
793 (WebInspector.ConsoleMessage): Added type property.
794 (WebInspector.ConsoleMessage.prototype.toMessageElement):
795 (WebInspector.ConsoleMessage.prototype.toString):
796 (WebInspector.ConsoleMessage.prototype.isEqual):
797 (WebInspector.ConsoleCommandResult):
798 (WebInspector.ConsoleGroup.prototype.addMessage):
799 (WebInspector.ConsoleGroup.prototype._titleClicked):
800 * inspector/front-end/Resource.js:
801 (WebInspector.Resource.prototype._addTip):
802 (WebInspector.Resource.prototype._checkWarning):
803 * inspector/front-end/inspector.css: Changed ".console-group-title-level" to ".console-group-title"
804 * inspector/front-end/inspector.js:
805 (WebInspector.addMessageToConsole):
806 * loader/DocLoader.cpp:
807 (WebCore::DocLoader::printAccessDeniedMessage):
808 * loader/EmptyClients.h:
809 (WebCore::EmptyChromeClient::addMessageToConsole):
810 * loader/FrameLoader.cpp:
811 (WebCore::FrameLoader::reportLocalLoadFailed):
812 (WebCore::FrameLoader::shouldAllowNavigation):
813 * page/ChromeClient.h:
815 (WebCore::printMessageSourceAndLevelPrefix):
816 (WebCore::Console::addMessage):
817 (WebCore::Console::error):
818 (WebCore::Console::log):
819 (WebCore::Console::dir):
820 (WebCore::Console::trace):
821 (WebCore::Console::assertCondition):
822 (WebCore::Console::timeEnd):
823 (WebCore::Console::warn):
824 * page/Console.h: Added MessageType enum.
826 * page/DOMWindow.cpp:
827 (WebCore::DOMWindow::postMessageTimerFired):
828 * page/XSSAuditor.cpp:
829 (WebCore::XSSAuditor::canEvaluate):
830 (WebCore::XSSAuditor::canLoadExternalScriptFromSrc):
831 (WebCore::XSSAuditor::canLoadObject):
832 * svg/SVGDocumentExtensions.cpp:
833 (WebCore::SVGDocumentExtensions::reportWarning):
834 (WebCore::SVGDocumentExtensions::reportError):
835 * wml/WMLErrorHandling.cpp:
836 (WebCore::reportWMLError):
837 * workers/GenericWorkerTask.h: Added GenericWorkerTask8 for the extra argument.
838 (WebCore::GenericWorkerTask8::create):
839 (WebCore::GenericWorkerTask8::GenericWorkerTask8):
840 (WebCore::GenericWorkerTask8::performTask):
841 (WebCore::createCallbackTask):
842 * workers/WorkerContext.cpp:
843 (WebCore::WorkerContext::addMessage):
844 (WebCore::WorkerContext::importScripts):
845 * workers/WorkerContext.h:
846 * workers/WorkerMessagingProxy.cpp:
847 (WebCore::postConsoleMessageTask):
848 (WebCore::WorkerMessagingProxy::postConsoleMessageToWorkerObject):
849 * workers/WorkerMessagingProxy.h:
850 * workers/WorkerObjectProxy.h:
851 * xml/XMLHttpRequest.cpp:
852 (WebCore::reportUnsafeUsage):
853 (WebCore::XMLHttpRequest::didFinishLoading):
854 * xml/XSLTProcessor.cpp:
855 (WebCore::XSLTProcessor::parseErrorFunc):
857 2009-07-12 Nate Chapin <japhet@chromium.org>
859 Reviewed by Dimitri Glazkov.
861 Upstream UndetectableHTMLCollection.idl as HTMLAllCollection.idl.
863 https://bugs.webkit.org/show_bug.cgi?id=27132
865 * bindings/scripts/CodeGeneratorV8.pm:
866 * bindings/v8/DOMObjectsInclude.h:
867 * bindings/v8/DerivedSourcesAllInOne.cpp:
868 * bindings/v8/V8DOMWrapper.cpp:
869 (WebCore::V8DOMWrapper::getTemplate):
870 (WebCore::V8DOMWrapper::instantiateV8Object):
871 * bindings/v8/V8Index.cpp:
872 * bindings/v8/V8Index.h:
873 * dom/HTMLAllCollection.idl: Added.
875 2009-07-12 Joseph Pecoraro <joepeck02@gmail.com>
877 Reviewed by Maciej Stachowiak.
879 Inspector: Duplicate Computation in Autocompletion
880 https://bugs.webkit.org/show_bug.cgi?id=26778
882 * inspector/front-end/TextPrompt.js:
883 (WebInspector.TextPrompt.prototype._completionsReady):
885 2009-07-12 Dan Bernstein <mitz@apple.com>
887 Reviewed by Maciej Stachowiak.
889 https://bugs.webkit.org/show_bug.cgi?id=27196
890 Rename bidi.cpp to RenderBlockLineLayout.cpp and remove bidi.h
892 * GNUmakefile.am: Updated.
893 * WebCore.gypi: Updated.
894 * WebCore.pro: Updated.
895 * WebCore.vcproj/WebCore.vcproj: Updated.
896 * WebCore.xcodeproj/project.pbxproj: Updated.
897 * WebCoreSources.bkl: Updated.
898 * rendering/RenderBlock.h: Removed unnecessary forward declaration and
900 * rendering/RenderBlockLineLayout.cpp: Copied from WebCore/rendering/bidi.cpp.
901 Removed unnecessary #include statements.
902 (WebCore::BidiRun::BidiRun): Moved here from bidi.h.
903 (WebCore::RenderBlock::layoutInlineChildren): Removed outdated comment.
904 * rendering/bidi.cpp: Removed.
905 * rendering/bidi.h: Removed.
907 2009-07-12 Dan Bernstein <mitz@apple.com>
911 * platform/graphics/cg/PDFDocumentImage.cpp:
912 (WebCore::PDFDocumentImage::dataChanged):
914 2009-07-12 Dan Bernstein <mitz@apple.com>
916 Reviewed by Sam Weinig.
920 * platform/graphics/BitmapImage.cpp:
921 (WebCore::BitmapImage::destroyDecodedData): Use the data() accessor
922 instead of the m_data member.
923 (WebCore::BitmapImage::dataChanged): Ditto.
924 * platform/graphics/Image.h: Re-ordered #includes and class
925 declarations. Removed the drawPatternCallback() declaration. Made member
927 * platform/graphics/cg/ImageCG.cpp:
928 (WebCore::drawPatternCallback): Changed this from a member function to a
930 * platform/graphics/cg/PDFDocumentImage.cpp:
931 (WebCore::PDFDocumentImage::dataChanged): Use the data() accessor
932 instead of the m_data member.
933 * svg/graphics/SVGImage.cpp:
934 (WebCore::SVGImage::dataChanged): Ditto.
936 2009-07-12 Daniel Bates <dbates@intudata.com>
938 Reviewed by Darin Adler.
940 https://bugs.webkit.org/show_bug.cgi?id=27189
942 Fixes insufficient check in XSSAuditor::canSetBaseElementURL that caused
943 XSSAuditor to incorrectly block HTML Base elements whose base path coincided
944 with the URL of the page.
946 Test: http/tests/security/xssAuditor/base-href-safe3.html
948 * page/XSSAuditor.cpp:
949 (WebCore::XSSAuditor::canSetBaseElementURL): Changed conditional to only call
950 XSSAuditor::findInRequest() if the host in the page URL disagrees with the host
951 in the base element URL.
953 2009-07-12 Darin Adler <darin@apple.com>
955 Reviewed by Dan Bernstein.
957 Text searching with ICU should take the user's default locale into account
958 https://bugs.webkit.org/show_bug.cgi?id=27184
959 rdar://problem/6812121
961 No simple way to test this since it's dependent on user locale.
962 After this, the user's default locale is used only on Mac.
964 * editing/TextIterator.cpp:
965 (WebCore::createSearcher): Pass result of the currentSearchLocaleID
966 function as the locale.
968 * platform/text/TextBreakIteratorInternalICU.h: Added declaration of
969 currentSearchLocaleID function.
971 * platform/text/android/TextBreakIteratorInternalICU.cpp:
972 (WebCore::currentSearchLocaleID): Added. Returns the empty string.
973 * platform/text/chromium/TextBreakIteratorInternalICUChromium.cpp:
974 (WebCore::currentSearchLocaleID): Ditto.
975 * platform/text/gtk/TextBreakIteratorInternalICUGtk.cpp:
976 (WebCore::currentSearchLocaleID): Ditto.
978 * platform/text/mac/TextBreakIteratorInternalICUMac.mm:
979 (WebCore::textBreakLocalePreference): Added. Returns the value of
980 the AppleTextBreakLocale preference.
981 (WebCore::topLanguagePreference): Added. Returns the value of the
982 first item in the AppleLanguages preference.
983 (WebCore::canonicalLanguageIdentifier): Added. Cover for the
984 CFLocaleCreateCanonicalLanguageIdentifierFromString function.
985 (WebCore::getLocale): Added. Transfers the locale from a CFStringRef
987 (WebCore::getSearchLocale): Added. Calls topLanguagePreference,
988 canonicalLanguageIdentifier, and getLocale.
989 (WebCore::currentSearchLocaleID): Added. Calls getSearchLocale once.
990 (WebCore::getTextBreakLocale): Changed to call
991 textBreakLocalePreference, topLanguagePreference,
992 canonicalLanguageIdentifier, and getLocale.
994 * platform/text/win/TextBreakIteratorInternalICUWin.cpp:
995 (WebCore::currentSearchLocaleID): Added. Returns the empty string.
996 * platform/wx/TemporaryLinkStubs.cpp:
997 (WebCore::currentSearchLocaleID): Ditto.
999 2009-07-12 Xan Lopez <xlopez@igalia.com>
1001 Reviewed by Gustavo Noronha.
1003 https://bugs.webkit.org/show_bug.cgi?id=25415
1004 [GTK][ATK] Please implement support for get_text_at_offset
1006 Create a PangoLayout that properly represents the visual
1007 appearance of the text in the web page so that the line boundary
1008 modes of getText{At,Before,After}Offset work correctly.
1010 * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
1013 (convertUniCharToUTF8):
1014 (getPangoLayoutForAtk):
1016 2009-07-11 Oliver Hunt <oliver@apple.com>
1018 Reviewed by Simon Fraser.
1020 Bug 27187 - Match Gecko behaviour for canvas path mutation APIs on an empty path
1021 <https://bugs.webkit.org/show_bug.cgi?id=27187>
1023 Simple API change, check for the empty path and add appropriate point if necessary.
1025 Test: fast/canvas/canvas-modify-emptyPath.html
1028 * WebCore.xcodeproj/project.pbxproj:
1029 * html/CanvasRenderingContext2D.cpp:
1030 (WebCore::CanvasRenderingContext2D::lineTo):
1031 (WebCore::CanvasRenderingContext2D::quadraticCurveTo):
1032 (WebCore::CanvasRenderingContext2D::bezierCurveTo):
1034 2009-07-11 Eric Carlson <eric.carlson@apple.com>
1036 Reviewed by Antti Koivisto.
1038 HTMLMediaElement.canPlayType "maybe" and "probably" reversed
1039 https://bugs.webkit.org/show_bug.cgi?id=27186
1041 * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
1042 (WebCore::MediaPlayerPrivate::supportsType):
1043 Return "probably" if type has codecs parameter.
1045 * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
1046 (WebCore::MediaPlayerPrivate::supportsType):
1049 * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
1050 (WebCore::MediaPlayerPrivate::supportsType):
1053 2009-07-11 Brady Eidson <beidson@apple.com>
1055 Reviewed by Mark Rowe.
1057 A worker-thread inspired follow-up for:
1058 https://bugs.webkit.org/show_bug.cgi?id=26496 and <rdar://problem/7046520>
1059 REGRESSION: XHR stream connection blocks iFrame loading and resource downloading
1061 * xml/XMLHttpRequest.cpp:
1062 (WebCore::XMLHttpRequest::loadRequestAsynchronously): Don't perform the XHR compensation when the XHR
1063 is running on a worker thread. Accessing the global Cache data structures from a non-main thread is
1064 not currently supported.
1066 2009-07-11 Simon Fraser <simon.fraser@apple.com>
1068 Enable support for accelerated compositing and 3d transforms on Leopard.
1069 <https://bugs.webkit.org/show_bug.cgi?id=20166>
1070 <rdar://problem/6120614>
1072 Reviewed by Oliver Hunt.
1074 * Configurations/FeatureDefines.xcconfig:
1076 2009-07-11 Simon Hausmann <hausmann@webkit.org>
1078 Fix the Qt build after r45724.
1080 * bridge/qt/qt_instance.cpp:
1081 (JSC::Bindings::QtRuntimeObjectImp::QtRuntimeObjectImp):
1082 * bridge/qt/qt_runtime.cpp:
1083 (JSC::Bindings::QtRuntimeMethod::QtRuntimeMethod):
1085 2009-07-10 Daniel Bates <dbates@intudata.com>
1087 Reviewed by Adam Barth.
1089 https://bugs.webkit.org/show_bug.cgi?id=26921
1091 Implements support for HTML entities, so XSSAuditor can protect against attacks
1092 encoded with HTML entities.
1094 Tests: http/tests/security/xssAuditor/inline-event-HTML-entities.html
1095 http/tests/security/xssAuditor/javascript-link-HTML-entities-control-char.html
1096 http/tests/security/xssAuditor/javascript-link-HTML-entities-named.html
1097 http/tests/security/xssAuditor/javascript-link-HTML-entities-null-char.html
1098 http/tests/security/xssAuditor/javascript-link-HTML-entities.html
1099 http/tests/security/xssAuditor/link-onclick-entities.html
1100 http/tests/security/xssAuditor/script-tag-entities.html
1101 http/tests/security/xssAuditor/script-tag-with-source-entities.html
1103 * page/XSSAuditor.cpp:
1104 (WebCore::XSSAuditor::canEvaluate):
1105 (WebCore::XSSAuditor::canEvaluateJavaScriptURL):
1106 (WebCore::XSSAuditor::decodeURL): Modified to call WebCore::XSSAuditor::decodeHTMLEntities
1107 to decode HTML entities.
1108 (WebCore::XSSAuditor::decodeHTMLEntities): Added method to decode HTML entities.
1109 (WebCore::XSSAuditor::findInRequest):
1110 * page/XSSAuditor.h:
1112 2009-07-10 David Kilzer <ddkilzer@apple.com>
1114 Bug 27007: Build fixes when ICONDATABASE is disabled
1116 <https://bugs.webkit.org/show_bug.cgi?id=27007>
1118 Reviewed by Sam Weinig.
1120 * WebCore.xcodeproj/project.pbxproj: Added IconDatabaseNone.cpp
1122 * loader/icon/IconDatabase.cpp: Added
1123 #if ENABLE(ICONDATABASE)/#endif macro guard.
1124 * loader/icon/IconDatabase.h: Removed three public methods from
1125 #if ENABLE(ICONDATABASE)/#endif macro so that they may be
1126 stubbed out in IconDatabaseNone.cpp.
1127 * loader/icon/IconDatabaseNone.cpp: Added
1128 #if !ENABLE(ICONDATABASE)/#endif macro guard.
1129 (WebCore::IconDatabase::importIconURLForPageURL): Added.
1130 (WebCore::IconDatabase::importIconDataForIconURL): Added.
1131 (WebCore::IconDatabase::shouldStopThreadActivity): Added.
1133 2009-07-10 Daniel Bates <dbates@intudata.com>
1135 Reviewed by Adam Barth.
1137 https://bugs.webkit.org/show_bug.cgi?id=27151
1139 Fixes issue where JavaScript URLs that contain null- and non-null control characters can
1142 Tests: http/tests/security/xssAuditor/javascript-link-control-char.html
1143 http/tests/security/xssAuditor/javascript-link-null-char.html
1144 http/tests/security/xssAuditor/javascript-link.html
1146 * bindings/js/ScriptController.cpp:
1147 (WebCore::ScriptController::evaluate): Separated out logic for JavaScript URLs from
1148 inline scripts. For JavaScript URLs, calls XSSAuditor::canEvaluateJavaScriptURL.
1149 * bindings/v8/ScriptController.cpp:
1150 (WebCore::ScriptController::evaluate): Made similar changes to evaluate() as in
1151 bindings/js/ScriptController.cpp.
1152 * page/XSSAuditor.cpp:
1153 (WebCore::XSSAuditor::canEvaluateJavaScriptURL): Separated out logic for JavaScript URLs
1154 into its own method.
1155 * page/XSSAuditor.h:
1157 2009-07-10 Shinichiro Hamaji <hamaji@chromium.org>
1159 Reviewed by David Kilzer.
1161 WebKit needs a style linting tool
1162 https://bugs.webkit.org/show_bug.cgi?id=25884
1164 Fix bunch of style issues by autofix of cpplint.
1165 This patch is created to demonstrate the autofix of cpplint.py.
1167 No new testcases because it's a style fix
1169 * css/CSSParser.cpp:
1170 (WebCore::CSSParser::parseMediaQuery):
1171 (WebCore::CSSParser::validUnit):
1172 (WebCore::CSSParser::parseValue):
1173 (WebCore::skipCommaInDashboardRegion):
1174 (WebCore::CSSParser::parseDashboardRegions):
1175 (WebCore::ShadowParseContext::commitValue):
1176 (WebCore::ShadowParseContext::commitLength):
1177 (WebCore::ShadowParseContext::commitColor):
1178 (WebCore::BorderImageParseContext::commitNumber):
1179 (WebCore::BorderImageParseContext::commitWidth):
1180 (WebCore::BorderImageParseContext::commitRule):
1181 (WebCore::BorderImageParseContext::commitBorderImage):
1182 (WebCore::CSSParser::lex):
1183 (WebCore::CSSParser::text):
1184 * css/CSSStyleSelector.cpp:
1185 (WebCore::CSSStyleSelector::applyProperty):
1186 * css/MediaList.cpp:
1187 (WebCore::MediaList::deleteMedium):
1189 * css/MediaQueryEvaluator.cpp:
1190 (WebCore::parseAspectRatio):
1191 * css/MediaQueryEvaluator.h:
1192 * css/MediaQueryExp.h:
1193 (WebCore::MediaQueryExp::operator==):
1194 * css/WebKitCSSMatrix.h:
1197 (WebCore::Document::setFocusedNode):
1199 (WebCore::Document::setHasDashboardRegions):
1200 * dom/DocumentFragment.cpp:
1201 (WebCore::DocumentFragment::nodeName):
1202 * dom/DocumentFragment.h:
1203 * dom/DynamicNodeList.h:
1204 * dom/EditingText.h:
1206 (WebCore::Element::dispatchAttrAdditionEvent):
1207 * dom/NamedAttrMap.cpp:
1208 (WebCore::NamedNodeMap::item):
1210 (WebCore::Node::nodeValue):
1211 (WebCore::Node::nodeIndex):
1212 * dom/NodeRareData.h:
1213 (WebCore::NodeListsNodeData::create):
1215 * dom/ProcessingInstruction.h:
1217 (WebCore::Range::processContents):
1218 * dom/StyledElement.cpp:
1220 * dom/XMLTokenizerLibxml2.cpp:
1221 (WebCore::PendingCallbacks::PendingStartElementNSCallback::~PendingStartElementNSCallback):
1222 (WebCore::PendingCallbacks::PendingStartElementNSCallback::call):
1223 (WebCore::PendingCallbacks::):
1224 (WebCore::OffsetBuffer::readOutBytes):
1225 (WebCore::handleElementNamespaces):
1226 (WebCore::handleElementAttributes):
1227 (WebCore::attributesStartElementNsHandler):
1228 * dom/XMLTokenizerQt.cpp:
1229 (WebCore::attributesStartElementNsHandler):
1230 (WebCore::XMLTokenizer::parseStartElement):
1231 * editing/ApplyStyleCommand.cpp:
1232 (WebCore::ApplyStyleCommand::applyInlineStyle):
1233 * editing/DeleteSelectionCommand.cpp:
1234 (WebCore::DeleteSelectionCommand::removeNode):
1235 * editing/Editor.cpp:
1236 (WebCore::Editor::pasteAsPlainText):
1237 * editing/SelectionController.cpp:
1238 (WebCore::SelectionController::directionOfEnclosingBlock):
1239 * editing/SmartReplaceICU.cpp:
1240 (WebCore::addAllCodePoints):
1241 * history/HistoryItem.cpp:
1242 (WebCore::HistoryItem::icon):
1243 (WebCore::HistoryItem::adoptVisitCounts):
1244 * html/CanvasStyle.cpp:
1245 (WebCore::CanvasStyle::applyFillColor):
1246 * html/HTMLAnchorElement.cpp:
1247 (WebCore::HTMLAnchorElement::setActive):
1248 (WebCore::HTMLAnchorElement::isLiveLink):
1249 * html/HTMLAppletElement.h:
1250 * html/HTMLAudioElement.h:
1251 * html/HTMLBRElement.h:
1252 * html/HTMLBaseElement.h:
1253 * html/HTMLBaseFontElement.h:
1254 * html/HTMLDListElement.h:
1255 * html/HTMLDirectoryElement.h:
1256 * html/HTMLFieldSetElement.cpp:
1257 (WebCore::HTMLFieldSetElement::HTMLFieldSetElement):
1258 * html/HTMLFormElement.cpp:
1259 (WebCore::HTMLFormElement::reset):
1260 * html/HTMLHRElement.cpp:
1261 (WebCore::HTMLHRElement::parseMappedAttribute):
1262 * html/HTMLHeadElement.h:
1263 * html/HTMLHtmlElement.h:
1264 * html/HTMLImageElement.h:
1265 (WebCore::HTMLImageElement::setLoadManually):
1266 * html/HTMLInputElement.cpp:
1267 (WebCore::HTMLInputElement::selection):
1268 * html/HTMLIsIndexElement.h:
1269 * html/HTMLMarqueeElement.cpp:
1270 * html/HTMLMediaElement.h:
1271 (WebCore::HTMLMediaElement::):
1272 * html/HTMLMenuElement.h:
1273 * html/HTMLMetaElement.h:
1274 * html/HTMLModElement.h:
1275 * html/HTMLOListElement.h:
1276 * html/HTMLOptionElement.cpp:
1277 (WebCore::HTMLOptionElement::childrenChanged):
1278 * html/HTMLParamElement.h:
1279 * html/HTMLQuoteElement.h:
1280 * html/HTMLStyleElement.h:
1281 * html/HTMLTableCaptionElement.h:
1282 * html/HTMLTableCellElement.h:
1283 * html/HTMLTableColElement.h:
1284 * html/HTMLTableSectionElement.cpp:
1285 (WebCore::HTMLTableSectionElement::deleteRow):
1286 * html/HTMLTitleElement.h:
1287 * html/HTMLTokenizer.cpp:
1288 (WebCore::HTMLTokenizer::parseNonHTMLText):
1289 (WebCore::HTMLTokenizer::parseEntity):
1290 (WebCore::HTMLTokenizer::parseTag):
1291 (WebCore::HTMLTokenizer::write):
1292 * html/HTMLUListElement.h:
1293 * html/HTMLVideoElement.h:
1294 * html/TimeRanges.h:
1295 (WebCore::TimeRanges::Range::Range):
1296 * inspector/InspectorController.cpp:
1297 (WebCore::InspectorController::enableResourceTracking):
1298 (WebCore::InspectorController::disableResourceTracking):
1299 * inspector/InspectorFrontend.cpp:
1300 (WebCore::InspectorFrontend::newInspectorJSONObject):
1302 (WebCore::Console::addMessage):
1303 * page/EventHandler.cpp:
1304 (WebCore::EventHandler::handleMousePressEvent):
1305 (WebCore::EventHandler::selectCursor):
1306 (WebCore::EventHandler::defaultKeyboardEventHandler):
1308 (WebCore::Frame::jsDefaultStatusBarText):
1309 * page/android/DragControllerAndroid.cpp:
1310 (WebCore::DragController::dragOperation):
1311 * page/android/EventHandlerAndroid.cpp:
1312 (WebCore::EventHandler::tabsToAllControls):
1313 (WebCore::EventHandler::eventActivatedView):
1314 * page/animation/AnimationController.cpp:
1315 (WebCore::AnimationControllerPrivate::updateStyleIfNeededDispatcherFired):
1316 * page/gtk/DragControllerGtk.cpp:
1317 (WebCore::DragController::dragOperation):
1318 * page/qt/DragControllerQt.cpp:
1319 * page/win/DragControllerWin.cpp:
1320 (WebCore::DragController::isCopyKeyDown):
1321 * page/win/FrameWin.h:
1322 * rendering/RenderSlider.cpp:
1323 (WebCore::RenderSlider::mouseEventOffsetToThumb):
1324 * rendering/style/RenderStyle.h:
1325 (WebCore::InheritedFlags::setVerticalAlignLength):
1326 (WebCore::InheritedFlags::setUnicodeBidi):
1327 (WebCore::InheritedFlags::setCursor):
1328 * rendering/style/RenderStyleConstants.h:
1330 * rendering/style/SVGRenderStyleDefs.h:
1331 * rendering/style/StyleInheritedData.h:
1332 (WebCore::StyleInheritedData::operator!=):
1333 * storage/DatabaseTask.h:
1334 * svg/GradientAttributes.h:
1335 * svg/LinearGradientAttributes.h:
1336 * svg/PatternAttributes.h:
1337 * svg/RadialGradientAttributes.h:
1338 * svg/SVGAnimatedPathData.h:
1339 * svg/SVGAnimatedPoints.h:
1340 * svg/SVGAnimationElement.h:
1341 * svg/SVGClipPathElement.h:
1342 * svg/SVGElementInstance.h:
1343 * svg/SVGFEBlendElement.cpp:
1344 (WebCore::SVGFEBlendElement::build):
1345 * svg/SVGFEBlendElement.h:
1346 * svg/SVGFEColorMatrixElement.cpp:
1347 (WebCore::SVGFEColorMatrixElement::build):
1348 * svg/SVGFEComponentTransferElement.cpp:
1349 (WebCore::SVGFEComponentTransferElement::build):
1350 * svg/SVGFECompositeElement.cpp:
1351 (WebCore::SVGFECompositeElement::build):
1352 * svg/SVGFEDiffuseLightingElement.cpp:
1353 (WebCore::SVGFEDiffuseLightingElement::build):
1354 * svg/SVGFEDisplacementMapElement.cpp:
1355 (WebCore::SVGFEDisplacementMapElement::build):
1356 * svg/SVGFEDistantLightElement.h:
1357 * svg/SVGFEFloodElement.cpp:
1358 (WebCore::SVGFEFloodElement::build):
1359 * svg/SVGFEFloodElement.h:
1360 * svg/SVGFEFuncAElement.h:
1361 * svg/SVGFEFuncBElement.h:
1362 * svg/SVGFEFuncGElement.h:
1363 * svg/SVGFEFuncRElement.h:
1364 * svg/SVGFEGaussianBlurElement.cpp:
1365 (WebCore::SVGFEGaussianBlurElement::build):
1366 * svg/SVGFEImageElement.cpp:
1367 (WebCore::SVGFEImageElement::build):
1368 * svg/SVGFEMergeElement.cpp:
1369 (WebCore::SVGFEMergeElement::build):
1370 * svg/SVGFEOffsetElement.cpp:
1371 (WebCore::SVGFEOffsetElement::build):
1372 * svg/SVGFEPointLightElement.h:
1373 * svg/SVGFESpecularLightingElement.cpp:
1374 (WebCore::SVGFESpecularLightingElement::build):
1375 * svg/SVGFESpotLightElement.h:
1376 * svg/SVGFETileElement.cpp:
1377 (WebCore::SVGFETileElement::build):
1378 * svg/SVGLineElement.cpp:
1379 (WebCore::SVGLineElement::parseMappedAttribute):
1381 * svg/SVGListTraits.h:
1383 * svg/SVGMPathElement.h:
1384 * svg/SVGMetadataElement.h:
1385 * svg/SVGParserUtilities.cpp:
1386 (WebCore::SVGPathParser::parseSVG):
1387 (WebCore::SVGPathParser::calculateArc):
1388 * svg/SVGPathElement.h:
1389 * svg/SVGPathSegClosePath.h:
1390 * svg/SVGSVGElement.h:
1391 * svg/SVGSetElement.h:
1392 * svg/SVGSwitchElement.h:
1393 * svg/SVGTextPathElement.cpp:
1394 (WebCore::SVGTextPathElement::parseMappedAttribute):
1395 * svg/SVGTextPathElement.h:
1396 * svg/SVGTitleElement.h:
1397 * svg/SVGTransformable.cpp:
1399 * svg/SVGViewSpec.cpp:
1401 * svg/animation/SMILTime.cpp:
1402 (WebCore::operator+):
1403 (WebCore::operator-):
1404 (WebCore::operator*):
1405 * svg/animation/SVGSMILElement.h:
1406 * svg/graphics/SVGResource.cpp:
1407 (WebCore::clientMap):
1408 * wml/WMLPostfieldElement.cpp:
1409 (WebCore::WMLPostfieldElement::value):
1410 * wml/WMLSetvarElement.cpp:
1411 (WebCore::WMLSetvarElement::value):
1412 * workers/WorkerRunLoop.cpp:
1413 * xml/XMLHttpRequest.cpp:
1414 (WebCore::XMLHttpRequest::dropProtection):
1417 2009-07-10 Eric Carlson <eric.carlson@apple.com>
1419 Reviewed by Simon Fraser.
1421 <rdar://problem/7049066>.
1422 Update SnowLeopard media controller layout.
1424 * css/mediaControlsQT.css:
1425 Update for new layout.
1426 * html/HTMLMediaElement.cpp:
1427 (WebCore::HTMLMediaElement::movieLoadType):
1428 Added to replace isStreaming.
1429 * html/HTMLMediaElement.h:
1430 Declare movieLoadType, remove isStreaming.
1432 * rendering/MediaControlElements.cpp:
1433 (WebCore::MediaControlStatusDisplayElement::update):
1434 Use movieLoadType instead of isStreaming.
1435 (WebCore::MediaControlTimelineContainerElement::rendererIsNeeded):
1436 MediaControlElement is the base class, not HTMLInputElement.
1437 (WebCore::MediaControlStatusDisplayElement::rendererIsNeeded):
1439 (WebCore::MediaControlRewindButtonElement::rendererIsNeeded):
1440 Don't display rewind button for live streams.
1441 (WebCore::MediaControlReturnToRealtimeButtonElement::rendererIsNeeded):
1442 MediaControlInputElement is the base class, not HTMLInputElement.
1443 * rendering/MediaControlElements.h:
1445 * rendering/RenderThemeMac.h:
1446 * rendering/RenderThemeMac.mm:
1447 (WebCore::getMediaUIPartStateFlags):
1448 New, return wkDrawMediaUIPart flags.
1449 (WebCore::RenderThemeMac::paintMediaFullscreenButton):
1450 (WebCore::RenderThemeMac::paintMediaMuteButton):
1451 (WebCore::RenderThemeMac::paintMediaPlayButton):
1452 (WebCore::RenderThemeMac::paintMediaSeekBackButton):
1453 (WebCore::RenderThemeMac::paintMediaSeekForwardButton):
1454 (WebCore::RenderThemeMac::paintMediaSliderTrack):
1455 (WebCore::RenderThemeMac::paintMediaSliderThumb):
1456 (WebCore::RenderThemeMac::paintMediaRewindButton):
1457 (WebCore::RenderThemeMac::paintMediaReturnToRealtimeButton):
1458 (WebCore::RenderThemeMac::paintMediaControlsBackground):
1459 (WebCore::RenderThemeMac::paintMediaCurrentTime):
1460 (WebCore::RenderThemeMac::paintMediaTimeRemaining):
1461 Use getMediaUIPartStateFlags.
1463 2009-07-10 Michelangelo De Simone <micdesim@gmail.com>
1465 Reviewed by Adele Peterson.
1467 https://bugs.webkit.org/show_bug.cgi?id=19562
1468 Added build stuff and stub for the ValidityState class, part of HTML5
1470 http://www.whatwg.org/specs/web-apps/current-work/multipage/forms.html#validitystate
1472 Test: fast/forms/ValidityState-001.html
1474 * DerivedSources.cpp: Fix aimed to include ValidityState files
1475 * DerivedSources.make: ditto
1476 * GNUmakefile.am: ditto
1477 * WebCore.gypi: ditto
1478 * WebCore.pro: ditto
1479 * WebCore.vcproj/WebCore.vcproj: ditto
1480 * WebCore.xcodeproj/project.pbxproj: ditto
1481 * WebCoreSources.bkl: ditto
1482 * html/HTMLButtonElement.idl: "validity" attribute
1483 * html/HTMLFieldSetElement.idl: ditto
1484 * html/HTMLFormControlElement.cpp: object getter
1485 (WebCore::HTMLFormControlElement::validity):
1486 * html/HTMLFormControlElement.h: ditto
1487 * html/HTMLInputElement.idl: "validity" attribute
1488 * html/HTMLSelectElement.idl: ditto
1489 * html/HTMLTextAreaElement.idl: ditto
1490 * html/ValidityState.cpp: Added.
1491 (WebCore::ValidityState::ValidityState):
1492 (WebCore::ValidityState::valid): validation flag
1493 * html/ValidityState.h: Added.
1494 (WebCore::ValidityState::create): creation routine
1495 (WebCore::ValidityState::control): ValidityState's parent getter
1496 (WebCore::ValidityState::valueMissing): validation flag
1497 (WebCore::ValidityState::typeMismatch): ditto
1498 (WebCore::ValidityState::patternMismatch): ditto
1499 (WebCore::ValidityState::tooLong): ditto
1500 (WebCore::ValidityState::rangeUnderflow): ditto
1501 (WebCore::ValidityState::rangeOverflow): ditto
1502 (WebCore::ValidityState::stepMismatch): ditto
1503 (WebCore::ValidityState::customError): ditto
1504 * html/ValidityState.idl: Added.
1506 2009-07-10 Brady Eidson <beidson@apple.com>
1508 Style cleanup over my last patch.
1510 * xml/XMLHttpRequest.cpp:
1511 (WebCore::XMLHttpRequest::~XMLHttpRequest):
1513 2009-07-10 Kevin McCullough <kmccullough@apple.com>
1515 Reviewed by Geoffrey Garen.
1517 * inspector/JavaScriptCallFrame.cpp:
1518 (WebCore::JavaScriptCallFrame::dynamicGlobalObject):
1519 * inspector/JavaScriptCallFrame.h: New helper method, used below.
1521 * inspector/JavaScriptDebugServer.cpp:
1522 (WebCore::JavaScriptDebugServer::detach): In the special case
1523 where we detach from a window currently executing JavaScript,
1524 manually tear down our representation of the JavaScript
1525 call stack, since we won't get any more callbacks from JavaScriptCore
1526 to automatically tear it down. It's too bad that WebCore is
1527 responsible for this kind of tracking -- in the future, it would
1528 be nice if more of the breakpoint handling was inside of JavaScriptCore.
1530 2009-07-10 Brady Eidson <beidson@apple.com>
1532 Reviewed by Antti Koivisto.
1534 https://bugs.webkit.org/show_bug.cgi?id=26496 and <rdar://problem/7046520>
1535 REGRESSION: XHR stream connection blocks iFrame loading and resource downloading
1537 With this test we ended up going over the maximum-connections-per-host limit that CFNetwork expected.
1538 When that happened, the first request that was over the limit ended up in a bizarre state where it
1539 wasn't fully serviced until after the long running XHR was complete.
1541 Loader and Loader::Host work together to try to not exceed the max-connection limit but non-cache
1542 resources - such as XHR - could still end up causing this limit to be exceeded.
1544 This fix adds a workaround specifically for XHR while we hash out a more thorough solution that will
1545 handle this at the resource handle level.
1547 * loader/loader.cpp:
1548 (WebCore::Loader::nonCacheRequestInFlight):
1549 (WebCore::Loader::nonCacheRequestComplete):
1550 (WebCore::Loader::Host::Host):
1551 (WebCore::Loader::Host::nonCacheRequestInFlight):
1552 (WebCore::Loader::Host::nonCacheRequestComplete):
1553 (WebCore::Loader::Host::servePendingRequests): Take nonCacheRequestsInFlight into account.
1555 (WebCore::Loader::Host::processingResource): Take nonCacheRequestsInFlight into account.
1557 * xml/XMLHttpRequest.cpp:
1558 (WebCore::XMLHttpRequest::XMLHttpRequest):
1559 (WebCore::XMLHttpRequest::~XMLHttpRequest):
1560 (WebCore::XMLHttpRequest::loadRequestAsynchronously): Bump the nonCacheRequestInFlight count.
1561 (WebCore::XMLHttpRequest::didFail): Decrement that count if the Loader was notified.
1562 (WebCore::XMLHttpRequest::didFinishLoading): Ditto.
1564 2009-07-10 Antti Koivisto <antti@apple.com>
1566 Try to unbreak non-Mac build.
1568 * page/ChromeClient.h:
1569 (WebCore::ChromeClient::formDidFocus):
1570 (WebCore::ChromeClient::formDidBlur):
1572 2009-07-10 Beth Dakin <bdakin@apple.com>
1574 Reviewed by Anders Carlsson.
1576 The rest of the fix for <rdar://problem/7038831> REGRESSION (TOT):
1577 In Mail, a crash occurs at WebCore::Widget::afterMouseDown() after
1578 clicking To Do's close box
1580 Make the Widget* in passMouseDownEventToWidget() a RefPtr.
1582 * page/mac/EventHandlerMac.mm:
1583 (WebCore::EventHandler::passMouseDownEventToWidget):
1585 2009-07-10 Eric Seidel <eric@webkit.org>
1587 Reviewed by Adam Barth.
1589 rename getDOMStructure calls w/o JSGlobalObject* to deprecatedGetDOMStructure
1590 https://bugs.webkit.org/show_bug.cgi?id=27157
1592 This is the first step to fixing
1593 https://bugs.webkit.org/show_bug.cgi?id=27088
1595 * WebCore.xcodeproj/project.pbxproj:
1596 * bindings/js/JSDOMBinding.h:
1597 (WebCore::deprecatedGetDOMStructure):
1598 (WebCore::createDOMObjectWrapper):
1599 (WebCore::createDOMNodeWrapper):
1600 * bindings/js/JSNamedNodesCollection.cpp:
1601 (WebCore::JSNamedNodesCollection::JSNamedNodesCollection):
1602 * bindings/js/JSRGBColor.cpp:
1603 (WebCore::JSRGBColor::JSRGBColor):
1604 * bridge/objc/objc_runtime.mm:
1605 (JSC::Bindings::ObjcFallbackObjectImp::ObjcFallbackObjectImp):
1606 * bridge/runtime_array.cpp:
1607 (JSC::RuntimeArray::RuntimeArray):
1608 * bridge/runtime_method.cpp:
1609 (JSC::RuntimeMethod::RuntimeMethod):
1610 * bridge/runtime_object.cpp:
1611 (JSC::RuntimeObjectImp::RuntimeObjectImp):
1613 2009-07-10 Greg Bolsinga <bolsinga@apple.com>
1615 Reviewed by Antti Koivisto.
1617 Add delegate methods about focus and blur and state change
1618 https://bugs.webkit.org/show_bug.cgi?id=27153
1620 Call the appropriate new ChromeClient methods for focus and blur.
1622 * html/HTMLFormControlElement.cpp:
1623 (WebCore::HTMLFormControlElement::dispatchFocusEvent):
1624 (WebCore::HTMLFormControlElement::dispatchBlurEvent):
1625 * html/HTMLFormControlElement.h:
1626 * loader/EmptyClients.h:
1627 (WebCore::EmptyChromeClient::formDidFocus):
1628 (WebCore::EmptyChromeClient::formDidBlur):
1629 * page/ChromeClient.h:
1631 2009-07-10 Steve Falkenburg <sfalken@apple.com>
1633 <rdar://problem/7048741> REGRESSION: Error about missing SwMenuX.dll opening pages with Shockwave
1635 Use altered search path while loading plug-ins. This modifies the DLL search order
1636 to look in the directory containing the plug-in even if a call to SetDllDirectory
1637 was previously made. Use of SetDllDirectory removes the current directory from the search path,
1638 breaking the previous strategy for locating any dependent DLLs of the plug-in.
1640 Reviewed by Jon Honeycutt.
1642 * plugins/win/PluginPackageWin.cpp:
1643 (WebCore::PluginPackage::load): Use LoadLibraryEx with LOAD_WITH_ALTERED_SEARCH_PATH
1645 2009-07-10 Adam Roben <aroben@apple.com>
1647 Sort all our Xcode projects
1649 Accomplished using sort-Xcode-project-file.
1651 Requested by Dave Kilzer.
1653 * WebCore.xcodeproj/project.pbxproj:
1655 2009-07-10 Adam Langley <agl@google.com>
1657 Reviewed by Darin Fisher.
1659 Chromium Linux: use disabled images for disabled widgets.
1661 https://bugs.webkit.org/show_bug.cgi?id=27106
1663 Previously, checkboxes and radio controls rendered the same even if disabled.
1664 The Chromium side of this change is r20224.
1666 * rendering/RenderThemeChromiumSkia.cpp:
1667 (WebCore::RenderThemeChromiumSkia::paintCheckbox):
1668 (WebCore::RenderThemeChromiumSkia::paintRadio):
1670 2009-07-10 Simon Fraser <simon.fraser@apple.com>
1672 Reviewed by John Sullivan.
1674 Fix crash when changing the zoom level in http://iphone.akamai.com/
1675 <rdar://problem/7029077>
1677 RenderLayerBacking's paintIntoLayer() method called updateLayerListsIfNeeded(),
1678 which could potentially destroy that compositing layer, causing a crash.
1679 Prevent this from happening by not doing a compositing update from paintIntoLayer().
1681 The existing updateLayerListsIfNeeded() was renamed to updateCompositingAndLayerListsIfNeeded(),
1682 and still does the compositing update. The new updateLayerListsIfNeeded() does not touch
1683 compositing layers, and is still called from paintIntoLayer().
1685 * rendering/RenderLayer.cpp:
1686 (WebCore::RenderLayer::paintLayer):
1687 (WebCore::RenderLayer::hitTestLayer):
1688 (WebCore::RenderLayer::updateLayerListsIfNeeded):
1689 (WebCore::RenderLayer::updateCompositingAndLayerListsIfNeeded):
1690 * rendering/RenderLayer.h:
1692 2009-07-10 Drew Wilson <atwilson@google.com>
1694 Reviewed by Darin Adler.
1696 Need to remove UsesManualToJSImplementation() in favor of CustomToJS.
1697 https://bugs.webkit.org/show_bug.cgi?id=27010
1699 Added support for CustomToJS IDL attribute to replace the hard-coded class list in UsesManualToJSImplementation().
1701 This is just a cleanup of existing functionality, so existing LayoutTests adequately cover this patch.
1703 * bindings/scripts/CodeGeneratorJS.pm:
1704 Removed UsesManualToJSImplementation(), added support for CustomToJS attribute.
1707 * css/StyleSheet.idl:
1711 * html/ImageData.idl:
1712 * svg/SVGElementInstance.idl:
1713 * svg/SVGPathSeg.idl:
1714 Added CustomToJS attribute to all the above IDL files.
1716 2009-07-10 Dan Bernstein <mitz@apple.com>
1718 - fix the build by reverting the ill-advised r45711
1720 * page/FrameView.cpp:
1721 (WebCore::FrameView::scrollToAnchor):
1723 2009-07-09 Brian Weinstein <bweinstein@apple.com>
1725 Reviewed by Tim Hatcher.
1727 Updated WebCore.base.exp to add some needed functions.
1731 2009-07-10 Dan Bernstein <mitz@apple.com>
1733 - address a review comment from Simon Fraser which I forgot to include
1734 in the last check-in
1736 * page/FrameView.cpp:
1737 (WebCore::FrameView::scrollToAnchor): Pass true to getRect() for
1738 maximum transform friendliness!
1740 2009-07-10 Dan Bernstein <mitz@apple.com>
1742 Reviewed by Simon Fraser.
1744 - fix https://bugs.webkit.org/show_bug.cgi?id=27137
1745 <rdar://problem/7043124> REGRESSION (r44311): Reproducible crash due
1746 to infinite recursion into FrameLoader::gotoAnchor() ->
1749 Test: fast/loader/goto-anchor-infinite-layout.html
1751 * loader/FrameLoader.cpp:
1752 (WebCore::FrameLoader::gotoAnchor): Moved the code to update layout,
1753 find the renderer to scroll to, and scroll from here to methods on
1754 FrameView, and replaced it with a call to
1755 FrameView::maintainScrollPositionAtAnchor().
1756 (WebCore::FrameLoader::completed): Call maintainScrollPositionAtAnchor()
1757 instead of setLockedToAnchor().
1759 * page/FrameView.cpp:
1760 (WebCore::FrameView::FrameView): Removed initialization of
1762 (WebCore::FrameView::reset): Reset m_maintainScrollPositionAnchor instead
1763 of m_lockedToAnchor.
1764 (WebCore::FrameView::layout): Removed the code related to scrolling to
1765 the anchor from here, because scrolling can trigger events which
1766 invalidate the layout, and as such, belongs with the post-layout tasks.
1767 (WebCore::FrameView::maintainScrollPositionAtAnchor): Added. When called
1768 with a node scrolls the view to the top of that node and maintains it
1769 scrolled to the top of the node during subsequent layouts, until
1770 this function is called with 0 or other things trigger scrolling.
1771 (WebCore::FrameView::scrollRectIntoViewRecursively): Reset
1772 m_maintainScrollPositionAnchor.
1773 (WebCore::FrameView::setScrollPosition): Ditto.
1774 (WebCore::FrameView::scrollToAnchor): Added. Scrolls to the top of
1775 m_maintainScrollPositionAnchor, if it is set.
1776 (WebCore::FrameView::performPostLayoutTasks): Call scrollToAnchor().
1777 (WebCore::FrameView::setWasScrolledByUser): Reset
1778 m_maintainScrollPositionAnchor.
1780 * page/FrameView.h: Removed lockedToAnchor(), setLockedToAnchor(),
1781 and m_lockedToAnchor. Added maintainScrollPositionAtAnchor() and
1782 m_maintainScrollPositionAnchor.
1784 2009-07-04 Sriram Yadavalli <sriram.yadavalli@nokia.com>
1786 Reviewed by Simon Hausmann.
1788 https://bugs.webkit.org/show_bug.cgi?id=26439
1790 QtWebKit fails in loading www.nytimes.com in Windows/Linux
1792 QNetworkReplyHandler is ignoring content associated with 401 error.
1793 This causes the XHR response handling to fail.
1795 Simon: Added also ProxyAuthenticationRequiredError, to handle the same
1796 case when going through proxies, as suggested by Prasanth.
1798 * platform/network/qt/QNetworkReplyHandler.cpp:
1799 (WebCore::QNetworkReplyHandler::finish):
1801 2009-07-10 Simon Hausmann <simon.hausmann@nokia.com>
1803 Reviewed by Holger Freyther.
1805 Enable HTML 5 Messaging to fix message channel Qt DRT failures in
1810 2009-07-09 Roland Steiner <rolandsteiner@google.com>
1812 Reviewed by Maciej Stachowiak.
1814 added InlineBox::isLeaf()
1815 firstLeafChild()/lastLeafChild() not virtual and not callable on InlineBox anymore.
1816 firstLeafChild()/lastLeafChild() will no longer return a node outside of the given subtree.
1817 Removed firstLeafChildAfterBox()/lastLeafChildBeforeBox()
1818 Removed potentially quadratic behavior if all nodes before/after a given box are empty InlineFlowBoxes
1820 Currently, these methods are called on RootInlineBox objects only, so above changes should not have
1821 any observable effect (only the removal of the square performance behavior could apply,
1822 but the conditions for that are probably of a rather theoretical nature).
1824 * rendering/InlineBox.cpp:
1825 (WebCore::InlineBox::nextLeafChild):
1826 (WebCore::InlineBox::prevLeafChild):
1827 * rendering/InlineBox.h:
1828 (WebCore::InlineBox::isLeaf):
1829 * rendering/InlineFlowBox.cpp:
1830 (WebCore::InlineFlowBox::firstLeafChild):
1831 (WebCore::InlineFlowBox::lastLeafChild):
1832 * rendering/InlineFlowBox.h:
1833 (WebCore::InlineFlowBox::firstChild):
1834 (WebCore::InlineFlowBox::lastChild):
1835 (WebCore::InlineFlowBox::isLeaf):
1836 * rendering/RootInlineBox.cpp:
1837 (WebCore::RootInlineBox::closestLeafChildForXPos):
1839 2009-07-09 Roland Steiner <rolandsteiner@google.com>
1841 Reviewed by Maciej Stachowiak.
1843 Added InlineBox::baselinePosition() and lineHeight() methods
1844 (adapted remaining code accordingly to use those methods)
1846 No change in functionality.
1848 * rendering/InlineBox.h:
1849 (WebCore::InlineBox::baselinePosition):
1850 (WebCore::InlineBox::lineHeight):
1851 * rendering/InlineFlowBox.cpp:
1852 (WebCore::InlineFlowBox::adjustMaxAscentAndDescent):
1853 (WebCore::InlineFlowBox::computeLogicalBoxHeights):
1854 (WebCore::InlineFlowBox::placeBoxesVertically):
1856 2009-07-09 Oliver Hunt <oliver@apple.com>
1858 Reviewed by Maciej Stachowiak.
1860 Bug 27142 - canPlayType() should return empty string for unsupported content
1861 <https://bugs.webkit.org/show_bug.cgi?id=27142>
1863 Return "" instead of "no" for unsupport media types.
1865 * html/HTMLMediaElement.cpp:
1866 (WebCore::HTMLMediaElement::canPlayType):
1868 2009-07-09 Roland Steiner <rolandsteiner@google.com>
1870 Reviewed by Maciej Stachowiak.
1872 Implement the part of HTML5 spec that deals with parsing of <rp> and <rt> tags
1873 in that their end tags are optional if followed by <rp>/<rt>.
1875 Also specify a new accessibility role "annotation" for <rp> and <rt>.
1877 Affected code parts are not enclosed in #IF ENABLE(RUBY), since the parsing
1878 is not affected by whether ruby is rendered properly or not (in fact, it may
1879 be more profound without ruby layouting, since the contents of <rp> are not hidden).
1881 Test: fast/ruby/parse-rp.html
1883 * accessibility/AccessibilityObject.h:
1885 * accessibility/AccessibilityRenderObject.cpp:
1886 (WebCore::AccessibilityRenderObject::roleValue):
1887 * html/HTMLElement.cpp:
1888 (WebCore::HTMLElement::endTagRequirement):
1889 (WebCore::HTMLElement::tagPriority):
1890 (WebCore::inlineTagList):
1891 * html/HTMLParser.cpp:
1892 (WebCore::HTMLParser::rpCreateErrorCheck):
1893 (WebCore::HTMLParser::rtCreateErrorCheck):
1894 (WebCore::HTMLParser::getNode):
1895 * html/HTMLParser.h:
1896 * html/HTMLTagNames.in:
1898 2009-07-09 Dmitry Titov <dimich@chromium.org>
1900 Not reviewed, fix for previous commit.
1902 The change http://trac.webkit.org/changeset/45695 did not correctly
1903 enabled GTL and QT build flags. This caused layout tests failure.
1904 This is speculative fix for those failures.
1906 * GNUmakefile.am: added ENABLE_CHANNEL_MESSAGING flag.
1907 * WebCore.pro: ditto.
1908 * page/DOMWindow.idl: touched to cause recompile.
1909 * workers/WorkerContext.idl: ditto.
1911 2009-07-09 Drew Wilson <atwilson@google.com>
1913 Reviewed by Alexey Proskuryakov.
1915 https://bugs.webkit.org/show_bug.cgi?id=26903
1917 Turned on CHANNEL_MESSAGING by default because the MessageChannel API
1918 is now implemented for Web Workers and is reasonably stable.
1920 Tests: fast/events/message-channel-gc-2.html
1921 fast/events/message-channel-gc-3.html
1922 fast/events/message-channel-gc-4.html
1923 fast/events/message-channel-gc.html
1924 fast/events/message-channel-listener-circular-ownership.html
1925 fast/events/message-port-clone.html
1926 fast/events/message-port-constructor-for-deleted-document.html
1927 fast/events/message-port-deleted-document.html
1928 fast/events/message-port-deleted-frame.html
1929 fast/events/message-port-inactive-document.html
1930 fast/events/message-port-no-wrapper.html
1931 fast/events/message-port.html
1932 fast/workers/worker-cloneport.html
1933 fast/workers/worker-messageport-gc.html
1934 fast/workers/worker-messageport.html
1936 * Configurations/FeatureDefines.xcconfig: Turned on ENABLE_CHANNEL_MESSAGING.
1937 * WebCore/WebCore.vcproj/WebCoreCommon.vsprops: ditto.
1938 * WebCore/WebCore.vcproj/build-generated-files.sh: ditto.
1939 * WebCore/page/DOMWindow.idl: touch the file to cause re-generation of headers.
1940 * WebCore/workers/WorkerContext.idl: ditto.
1943 2009-07-09 Pierre d'Herbemont <pdherbemont@apple.com>
1945 Reviewed by Simon Fraser.
1947 Full page zoom breaks remaining and elapsed time display in the <video> controller.
1948 https://bugs.webkit.org/show_bug.cgi?id=27123
1950 We are changing the size of the time remaining and time elapsed field, to
1951 automatically hide them, when the controller is too short.
1953 Because we toggle the size between 0 and the previous value of the
1954 controller, we miss any width change that may occur during full page zoom,
1955 and we fail to restore a correct width.
1957 This change fixes that problem by using a cloned style on which we
1958 set the width to 0, and restoring the previous style when going back to
1961 We take care about properly using the cloned style or the pseudo style,
1962 by overriding styleForElement().
1964 * rendering/MediaControlElements.cpp:
1965 (WebCore::MediaControlElement::styleForElement):
1966 (WebCore::MediaControlElement::attach):
1967 (WebCore::MediaControlElement::updateStyle):
1968 (WebCore::MediaControlInputElement::styleForElement):
1969 (WebCore::MediaControlInputElement::attach):
1970 (WebCore::MediaControlInputElement::updateStyle):
1971 (WebCore::MediaControlTimeDisplayElement::MediaControlTimeDisplayElement):
1972 (WebCore::MediaControlTimeDisplayElement::styleForElement):
1973 (WebCore::MediaControlTimeDisplayElement::setVisible):
1974 * rendering/MediaControlElements.h:
1975 * rendering/RenderMedia.cpp:
1976 (WebCore::RenderMedia::shouldShowTimeDisplayControls): Make sure
1977 we take in account the zoom level when deciding if we should hide the
1978 ellapsed and remaining time.
1980 2009-07-09 Michael Nordman <michaeln@google.com>
1982 Reviewed by Darin Adler.
1984 Fix chromium build bustage due to Widget being a RefCounted class.
1985 https://bugs.webkit.org/show_bug.cgi?id=27139
1987 * platform/chromium/PopupMenuChromium.cpp:
1988 * platform/chromium/PopupMenuChromium.h:
1990 2009-07-09 Chris Fleizach <cfleizach@apple.com>
1992 Reviewed by Darin Adler.
1994 Bug 27130 - Need to implement ARIA role="toolbar"
1995 https://bugs.webkit.org/show_bug.cgi?id=27130
1997 Test: platform/mac/accessibility/aria-toolbar.html
1999 * accessibility/AccessibilityRenderObject.cpp:
2000 (WebCore::RoleEntry::):
2001 * accessibility/mac/AccessibilityObjectWrapper.mm:
2002 (-[AccessibilityObjectWrapper roleDescription]):
2004 2009-07-09 Dimitri Glazkov <dglazkov@chromium.org>
2006 Reviewed by Darin Fisher.
2008 [Chromium] Upstream WebCore.gypi, the project file for Chromium build.
2009 https://bugs.webkit.org/show_bug.cgi?id=27135
2011 * WebCore.gypi: Added.
2013 2009-07-09 Jon Honeycutt <jhoneycutt@apple.com>
2015 A more robust fix for <rdar://problem/6930280> Reproducible crash at
2016 USA Today photo gallery
2018 Reviewed by Steve Falkenburg.
2020 * plugins/win/PluginMessageThrottlerWin.cpp:
2021 (WebCore::PluginMessageThrottlerWin::messageThrottleTimerFired):
2022 Protect the PluginView from destruction before calling its window proc.
2024 2009-07-09 Jon Honeycutt <jhoneycutt@apple.com>
2026 <rdar://problem/6978804> WER #16: Repro Access Violation in
2027 WebCore::PluginView::bindingInstance (1310178023)
2029 Reviewed by Darin Adler.
2031 * plugins/PluginView.cpp:
2032 (WebCore::PluginView::bindingInstance):
2033 Protect the PluginView from destruction before calling NPN_GetValue. If
2034 the renderer for the PluginView was destroyed during the call, and the
2035 PluginView's ref count is now 1, return null.
2037 2009-07-09 Jon Honeycutt <jhoneycutt@apple.com>
2039 Speculative fix for <rdar://problem/6991251> WER #13: Crash in
2040 WebKit!WebCore::PluginView::performRequest+203 (1311461169)
2042 Reviewed by Darin Adler.
2044 * plugins/PluginView.cpp:
2045 (WebCore::PluginView::performRequest):
2046 Protect the PluginView from destruction before performing a load.
2047 Removed some trailing whitespace.
2049 2009-07-09 Jon Honeycutt <jhoneycutt@apple.com>
2053 * inspector/JavaScriptDebugServer.cpp:
2054 (WebCore::JavaScriptDebugServer::setJavaScriptPaused):
2056 2009-07-09 Beth Dakin and Jon Honeycutt <bdakin@apple.com>
2058 Reviewed by Dave Hyatt.
2060 Make Widget RefCounted to fix or make fixable:
2062 <rdar://problem/7038831> REGRESSION (TOT): In Mail, a crash occurs
2063 at WebCore::Widget::afterMouseDown() after clicking To Do's close
2065 <rdar://problem/6978804> WER #16: Repro Access Violation in
2066 WebCore::PluginView::bindingInstance (1310178023)
2068 <rdar://problem/6991251> WER #13: Crash in WebKit!
2069 WebCore::PluginView::performRequest+203 (1311461169)
2071 * loader/EmptyClients.h:
2072 (WebCore::EmptyFrameLoaderClient::createPlugin):
2073 Changed to return PassRefPtr
2074 (WebCore::EmptyFrameLoaderClient::createJavaAppletWidget):
2077 * loader/FrameLoader.cpp:
2078 (WebCore::FrameLoader::loadSubframe):
2079 (WebCore::FrameLoader::loadPlugin):
2080 Make the widget variable a RefPtr. Use .get() when passing it to
2081 RenderPart::setWidget().
2082 (WebCore::FrameLoader::createJavaAppletWidget):
2083 Make the widget variable a RefPtr.
2085 * loader/FrameLoader.h:
2086 Changed the return type of createJavaAppletWidget().
2088 * loader/FrameLoaderClient.h:
2089 Change the return types of createPlugin() and
2090 createJavaAppletWidget().
2093 (WebCore::Frame::createView):
2094 No need to call .get() since setWidget() takes a RefPtr.
2096 * page/FrameView.cpp:
2097 (WebCore::FrameView::layoutIfNeededRecursive):
2098 children() now returns a HashSet of RefPtrs.
2101 Remove inheritance from RefCounted; we pick this up from ScrollView
2104 * platform/ScrollView.cpp:
2105 (WebCore::ScrollView::addChild):
2106 addChild() now takes a PassRefPtr and m_children now keeps a
2109 * platform/ScrollView.h:
2110 ScrollView constructor is now protected.
2111 (WebCore::ScrollView::children):
2112 m_children is now a HashSet of RefPtrs.
2114 * platform/Scrollbar.h:
2115 Remove inheritance from RefCounted; we pick this up from ScrollView
2118 * platform/Widget.h:
2119 Inherit from RefCounted. Cleaned up some whitespace. Make m_widget
2122 * plugins/PluginView.cpp:
2123 (WebCore::PluginView::create):
2124 Adopt the PluginView when returning it.
2126 * plugins/PluginView.h:
2127 Changed create() to return a PassRefPtr.
2129 * rendering/RenderApplet.cpp:
2130 Receive result in a RefPtr when calling createJavaAppletWidget().
2132 * rendering/RenderPart.cpp:
2133 (WebCore::RenderPart::setWidget):
2134 setWidget() now takes a PassRefPtr. Also removed the manual ref of
2135 FrameViews. This is handled by having m_widget be a RefPtr. Removed
2138 * rendering/RenderPart.h:
2139 Removed override of deleteWidget().
2141 * rendering/RenderWidget.cpp:
2142 (WebCore::RenderWidget::destroy):
2143 (WebCore::RenderWidget::setWidget):
2144 (WebCore::RenderWidget::paint):
2145 (WebCore::RenderWidget::setOverlapTestResult):
2146 (WebCore::RenderWidget::updateWidgetPosition):
2148 (WebCore::RenderWidget::clearWidget):
2149 Don't call deleteWidget(). It was removed.
2151 * rendering/RenderWidget.h:
2152 Removed deleteWidget(). Made m_widget a RefPtr.
2153 (WebCore::RenderWidget::widget):
2156 2009-07-09 Chris Fleizach <cfleizach@apple.com>
2158 Reviewed by Darin Adler.
2160 Bug 27129 - AX: possible assertion for a non-native image in accessibility
2161 https://bugs.webkit.org/show_bug.cgi?id=27129
2163 It's possible for an image that is not really an image to assert, because its renderer
2164 is turned into a RenderImage.
2166 Test: accessibility/non-native-image-crash.html
2168 * accessibility/AccessibilityRenderObject.cpp:
2169 (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
2170 (WebCore::RoleEntry::):
2171 * accessibility/mac/AccessibilityObjectWrapper.mm:
2172 (-[AccessibilityObjectWrapper roleDescription]):
2174 2009-07-09 Simon Fraser <simon.fraser@apple.com>
2176 Build fix for SnowLeopard.
2178 Avoid using the contentsTransform methods if not on Leopard, because
2179 we don't need to call them.
2181 * platform/graphics/mac/GraphicsLayerCA.mm:
2182 (WebCore::GraphicsLayerCA::updateContentsTransform):
2183 * platform/graphics/mac/WebLayer.mm:
2184 (-[WebLayer setNeedsDisplayInRect:]):
2185 * platform/graphics/mac/WebTiledLayer.mm:
2186 (-[WebTiledLayer setNeedsDisplayInRect:]):
2188 2009-07-09 Simon Fraser <simon.fraser@apple.com>
2190 Reviewed by Dave Hyatt
2192 Improve the appearance of text in compositing layers when -[CALayer geometryFlipped]
2194 <rdar://problem/6120614>
2196 * platform/graphics/GraphicsLayer.h:
2197 (WebCore::GraphicsLayer::setContentsOrientation):
2198 (WebCore::GraphicsLayer::contentsOrientation):
2199 * platform/graphics/GraphicsLayer.cpp:
2200 (WebCore::GraphicsLayer::GraphicsLayer):
2201 Add a m_contentsOrientation member and getter/setter to control whether
2202 the contents of this layer have a transform applied to them before display.
2204 * platform/graphics/mac/GraphicsLayerCA.h:
2205 New method to return the default contents orientation.
2207 * platform/graphics/mac/GraphicsLayerCA.mm:
2208 (WebCore::flipTransform):
2209 Convenience method to return a transform with a Y flip.
2211 (WebCore::GraphicsLayerCA::GraphicsLayerCA):
2212 (WebCore::GraphicsLayerCA::setSize):
2213 After the size changes we have to update the contentsTransform.
2215 (WebCore::GraphicsLayerCA::setGeometryOrientation):
2216 (WebCore::GraphicsLayerCA::geometryOrientation):
2217 If -setGeometryFlipped: is not available, use a children transform.
2219 (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
2220 Tiled layers have issues with flipped contentsTransform, so just use
2221 top-down drawing for them. Call updateContentsTransform() to set the
2222 new contents transform after swapping layers.
2224 (WebCore::GraphicsLayerCA::defaultContentsOrientation):
2225 Use bottom-up when -geometryFlipped is not available, otherwise top-down.
2227 (WebCore::GraphicsLayerCA::updateContentsTransform):
2228 Set the layer contents transform based on contentsOrientation().
2230 (WebCore::GraphicsLayerCA::setContentsLayer):
2231 We have to manually flip contents layers if we're not using -geometryFlipped.
2233 * platform/graphics/mac/WebLayer.h:
2234 * platform/graphics/mac/WebLayer.mm:
2235 Do early return if layerContents is nil. Flip the CTM if the layer has
2236 bottom-up coordinates, so that CG sees a CTM with no flip.
2237 Do the CGContextRestoreGState() after drawing the debug indicator.
2239 (-[WebLayer setNeedsDisplayInRect:]):
2240 * platform/graphics/mac/WebTiledLayer.mm:
2241 (-[WebTiledLayer setNeedsDisplayInRect:]):
2242 Need to map the dirty rect through the contentsTransform.
2244 2009-07-09 Alexey Proskuryakov <ap@webkit.org>
2246 Reviewed by Geoff Garen.
2248 <rdar://problem/6921671> Visit counter shouldn't be incremented by redirects.
2250 Can't test this functionality with layout tests.
2253 * history/HistoryItem.cpp:
2254 (WebCore::HistoryItem::recordVisitAtTime):
2255 (WebCore::HistoryItem::visited):
2256 * history/HistoryItem.h:
2257 Only increase visit count if explicitly told to. Now, some visits change last access time,
2258 but do not increase visit count.
2260 2009-07-09 Eric Carlson <eric.carlson@apple.com>
2262 Reviewed by Simon Fraser.
2264 <rdar://problem/7046098> MediaControllerThemeQT requires QuickTime 7.6.3
2266 Require QuickTime 7.6.3 or higher to enable the new media controller UI.
2268 * rendering/RenderThemeMac.mm:
2269 (WebCore::mediaControllerTheme):
2271 2009-07-09 Sam Weinig <sam@webkit.org>
2273 Reviewed by Beth Dakin.
2275 Remove incorrect comment.
2277 * page/MouseEventWithHitTestResults.h:
2279 2009-07-09 Mads Ager <ager@chromium.org>
2281 Reviewed by Dimitri Glazkov.
2283 Update the V8 bindings codegenerator to use the RGBColor::create
2284 method to handle refcounts for RGBColor objects correctly.
2286 * bindings/scripts/CodeGeneratorV8.pm: Use RGBColor::create to create RGBColor objects.
2288 2009-07-09 Eric Carlson <eric.carlson@apple.com>
2290 Reviewed by Adele Peterson.
2292 Crash in RenderMedia::styleDidChange.
2293 <rdar://problem/7044313> CrashTracer: quicklook crashed generating thumbnail for page with
2294 media element (RenderMedia::styleDidChange + 115)
2296 Speculative fix for crash in styleDidChange. Null check controller elements before tell
2297 them to update style.
2299 * rendering/RenderMedia.cpp:
2300 (WebCore::RenderMedia::styleDidChange):
2302 2009-07-09 Adam Barth <abarth@webkit.org>
2304 Reviewed by Dimitri Glazkov.
2306 [V8] Move V8DOMWrapper to its own file
2307 https://bugs.webkit.org/show_bug.cgi?id=27121
2309 * bindings/v8/V8DOMWrapper.cpp: Added.
2310 (WebCore::GetToStringName):
2311 (WebCore::ConstructorToString):
2312 (WebCore::V8DOMWrapper::convertSVGElementInstanceToV8Object):
2313 (WebCore::V8DOMWrapper::convertSVGObjectWithContextToV8Object):
2314 (WebCore::V8DOMWrapper::domObjectHasJSWrapper):
2315 (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
2316 (WebCore::V8DOMWrapper::setJSWrapperForActiveDOMObject):
2317 (WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
2318 (WebCore::V8DOMWrapper::getTemplate):
2319 (WebCore::V8DOMWrapper::convertToV8Object):
2320 (WebCore::V8DOMWrapper::setHiddenWindowReference):
2321 (WebCore::V8DOMWrapper::domWrapperType):
2322 (WebCore::V8DOMWrapper::convertToNativeObjectImpl):
2323 (WebCore::V8DOMWrapper::convertToSVGPODTypeImpl):
2324 (WebCore::V8DOMWrapper::lookupDOMWrapper):
2325 (WebCore::V8DOMWrapper::convertDOMWrapperToNodeHelper):
2326 (WebCore::V8DOMWrapper::wrapNativeNodeFilter):
2327 (WebCore::V8DOMWrapper::instantiateV8Object):
2328 (WebCore::V8DOMWrapper::setDOMWrapper):
2329 (WebCore::V8DOMWrapper::maybeDOMWrapper):
2330 (WebCore::V8DOMWrapper::isDOMEventWrapper):
2331 (WebCore::V8DOMWrapper::isWrapperOfType):
2332 (WebCore::V8DOMWrapper::htmlElementType):
2333 (WebCore::V8DOMWrapper::svgElementType):
2334 (WebCore::V8DOMWrapper::convertEventToV8Object):
2336 (WebCore::V8DOMWrapper::convertNodeToV8Object):
2337 (WebCore::V8DOMWrapper::convertEventTargetToV8Object):
2338 (WebCore::V8DOMWrapper::convertEventListenerToV8Object):
2339 (WebCore::V8DOMWrapper::convertDOMImplementationToV8Object):
2340 (WebCore::V8DOMWrapper::convertStyleSheetToV8Object):
2341 (WebCore::V8DOMWrapper::convertCSSValueToV8Object):
2342 (WebCore::V8DOMWrapper::convertCSSRuleToV8Object):
2343 (WebCore::V8DOMWrapper::convertWindowToV8Object):
2344 * bindings/v8/V8DOMWrapper.h: Added.
2345 (WebCore::V8DOMWrapper::convertDOMWrapperToNative):
2346 (WebCore::V8DOMWrapper::wrapCPointer):
2347 (WebCore::V8DOMWrapper::extractCPointer):
2348 (WebCore::V8DOMWrapper::convertDOMWrapperToNode):
2349 (WebCore::V8DOMWrapper::convertToV8Object):
2350 (WebCore::V8DOMWrapper::convertToNativeObject):
2351 (WebCore::V8DOMWrapper::convertToNativeEvent):
2352 (WebCore::V8DOMWrapper::extractCPointerImpl):
2353 (WebCore::V8DOMWrapper::instantiateV8Object):
2354 * bindings/v8/V8Proxy.cpp:
2355 * bindings/v8/V8Proxy.h:
2357 2009-07-09 David Hyatt <hyatt@apple.com>
2359 Reviewed by Adele Peterson.
2361 Crash in setFocusedFrame.
2362 <rdar://7032869> Crashing in setFocusedFrame on blogger.com.
2364 Speculative fix for crasher in setFocusedFrame. Make sure to ref both frames and fire
2365 the events only after the local member has been updated.
2367 * page/FocusController.cpp:
2368 (WebCore::FocusController::setFocusedFrame):
2370 2009-07-09 Eric Carlson <eric.carlson@apple.com>
2372 Reviewed by Adele Peterson.
2374 Possible crashes when mouse clicks not dispatched because range input destroyed while
2375 thumb is being dragged (e.g. scrub to end of movie)
2376 <rdar://problem/7037494>
2377 https://bugs.webkit.org/show_bug.cgi?id=27101
2379 Some shadow nodes "capture" all mouse events from mouseDown to mouseUp so they continue to
2380 get mouse events even when the mouse is moved outside of the node. This is done by putting
2381 EventHandler into a mode where it sends all mouse events to the node regardless of the
2382 actual mouse position. The mode is set on mouseDown and cleared on mouseUp but if the
2383 node is deleted while in this mode, the mouseUp is never sent and EventHandler continues
2384 to try to send events to the deleted node. This sometimes results in a crash, and sometimes
2385 in a page that doesn't respond to click events.
2387 Tests: fast/forms/search-delete-while-cancel-button-clicked.html
2388 fast/forms/slider-delete-while-dragging-thumb.html
2389 media/audio-delete-while-slider-thumb-clicked.html
2390 media/audio-delete-while-step-button-clicked.html
2392 * rendering/MediaControlElements.cpp:
2393 (WebCore::MediaControlSeekButtonElement::detach):
2394 New, call setCapturingMouseEventsNode if capturing mouse events.
2395 * rendering/MediaControlElements.h:
2398 * rendering/RenderSlider.cpp:
2399 (WebCore::SliderThumbElement::detach):
2400 New, call setCapturingMouseEventsNode if capturing mouse events.
2402 * rendering/TextControlInnerElements.cpp:
2403 (WebCore::SearchFieldCancelButtonElement::detach):
2404 New, call setCapturingMouseEventsNode if capturing mouse events.
2405 * rendering/TextControlInnerElements.h:
2408 2009-07-09 Yury Semikhatsky <yurys@chromium.org>
2410 Reviewed by Dimitri Glazkov.
2412 Enter the Frame's context before creating new objects in setContextDebugId.
2414 https://bugs.webkit.org/show_bug.cgi?id=27112
2416 * bindings/v8/V8Proxy.cpp:
2417 (WebCore::V8Proxy::setContextDebugId):
2419 2009-07-09 Simon Hausmann <hausmann@webkit.org>
2423 * WebCore.pro: Add new storage impl files to the build.
2425 2009-07-08 Adam Barth <abarth@webkit.org>
2427 Rubber stamped by Eric Seidel.
2429 [V8] Move DOM wrapper functions in V8Proxy to V8DOMWrapper
2430 https://bugs.webkit.org/show_bug.cgi?id=27107
2432 This patch is just renaming. Code motion will occur next.
2434 * bindings/scripts/CodeGeneratorV8.pm:
2435 * bindings/v8/ScriptController.cpp:
2436 (WebCore::ScriptController::processingUserGesture):
2437 (WebCore::createScriptObject):
2438 (WebCore::ScriptController::createScriptObjectForPluginElement):
2439 * bindings/v8/ScriptObject.cpp:
2440 (WebCore::ScriptGlobalObject::set):
2441 * bindings/v8/ScriptObjectQuarantine.cpp:
2442 (WebCore::getQuarantinedScriptObject):
2443 * bindings/v8/V8AbstractEventListener.cpp:
2444 (WebCore::V8AbstractEventListener::handleEvent):
2445 (WebCore::V8AbstractEventListener::getReceiverObject):
2446 * bindings/v8/V8Collection.cpp:
2447 (WebCore::toOptionsCollectionSetter):
2448 * bindings/v8/V8Collection.h:
2449 (WebCore::getV8Object):
2450 (WebCore::getNamedPropertyOfCollection):
2451 (WebCore::nodeCollectionNamedPropertyGetter):
2452 (WebCore::getIndexedPropertyOfCollection):
2453 (WebCore::nodeCollectionIndexedPropertyGetter):
2454 (WebCore::nodeCollectionIndexedPropertyEnumerator):
2455 (WebCore::collectionIndexedPropertyEnumerator):
2456 (WebCore::collectionStringOrNullIndexedPropertyGetter):
2457 * bindings/v8/V8DOMMap.cpp:
2458 (WebCore::DOMData::handleWeakObject):
2459 (WebCore::DOMData::removeObjectsFromWrapperMap):
2460 * bindings/v8/V8GCController.cpp:
2461 (WebCore::enumerateDOMObjectMap):
2462 (WebCore::DOMObjectVisitor::visitDOMWrapper):
2463 (WebCore::GCPrologueVisitor::visitDOMWrapper):
2464 (WebCore::GCEpilogueVisitor::visitDOMWrapper):
2465 * bindings/v8/V8Helpers.cpp:
2466 (WebCore::wrapNPObject):
2467 * bindings/v8/V8NodeFilterCondition.cpp:
2468 (WebCore::V8NodeFilterCondition::acceptNode):
2469 * bindings/v8/V8Proxy.cpp:
2470 (WebCore::V8DOMWrapper::convertSVGElementInstanceToV8Object):
2471 (WebCore::V8DOMWrapper::convertSVGObjectWithContextToV8Object):
2472 (WebCore::V8DOMWrapper::domObjectHasJSWrapper):
2473 (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
2474 (WebCore::V8DOMWrapper::setJSWrapperForActiveDOMObject):
2475 (WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
2476 (WebCore::V8Proxy::evaluateInNewContext):
2477 (WebCore::V8Proxy::getConstructor):
2478 (WebCore::V8DOMWrapper::getTemplate):
2479 (WebCore::V8Proxy::retrieveWindow):
2480 (WebCore::V8Proxy::updateDocumentWrapperCache):
2481 (WebCore::V8Proxy::clearForNavigation):
2482 (WebCore::V8Proxy::installDOMWindow):
2483 (WebCore::setDOMExceptionHelper):
2484 (WebCore::V8DOMWrapper::convertToV8Object):
2485 (WebCore::V8DOMWrapper::setHiddenWindowReference):
2486 (WebCore::V8DOMWrapper::domWrapperType):
2487 (WebCore::V8DOMWrapper::convertToNativeObjectImpl):
2488 (WebCore::V8DOMWrapper::convertToSVGPODTypeImpl):
2489 (WebCore::V8DOMWrapper::lookupDOMWrapper):
2490 (WebCore::V8DOMWrapper::convertDOMWrapperToNodeHelper):
2491 (WebCore::V8DOMWrapper::wrapNativeNodeFilter):
2492 (WebCore::V8DOMWrapper::instantiateV8Object):
2493 (WebCore::V8DOMWrapper::setDOMWrapper):
2494 (WebCore::V8DOMWrapper::maybeDOMWrapper):
2495 (WebCore::V8DOMWrapper::isDOMEventWrapper):
2496 (WebCore::V8DOMWrapper::isWrapperOfType):
2497 (WebCore::V8DOMWrapper::htmlElementType):
2498 (WebCore::V8DOMWrapper::svgElementType):
2499 (WebCore::V8DOMWrapper::convertEventToV8Object):
2500 (WebCore::V8DOMWrapper::convertNodeToV8Object):
2501 (WebCore::V8DOMWrapper::convertEventTargetToV8Object):
2502 (WebCore::V8DOMWrapper::convertEventListenerToV8Object):
2503 (WebCore::V8DOMWrapper::convertDOMImplementationToV8Object):
2504 (WebCore::V8DOMWrapper::convertStyleSheetToV8Object):
2505 (WebCore::V8DOMWrapper::convertCSSValueToV8Object):
2506 (WebCore::V8DOMWrapper::convertCSSRuleToV8Object):
2507 (WebCore::V8DOMWrapper::convertWindowToV8Object):
2508 (WebCore::V8Proxy::bindJsObjectToWindow):
2509 * bindings/v8/V8Proxy.h:
2510 (WebCore::V8DOMWrapper::convertDOMWrapperToNative):
2511 (WebCore::V8DOMWrapper::wrapCPointer):
2512 (WebCore::V8DOMWrapper::extractCPointer):
2513 (WebCore::V8DOMWrapper::convertDOMWrapperToNode):
2514 (WebCore::V8DOMWrapper::convertToV8Object):
2515 (WebCore::V8DOMWrapper::convertToNativeObject):
2516 (WebCore::V8DOMWrapper::convertToNativeEvent):
2517 (WebCore::V8DOMWrapper::extractCPointerImpl):
2518 (WebCore::V8DOMWrapper::instantiateV8Object):
2519 (WebCore::V8Proxy::constructDOMObject):
2521 * bindings/v8/V8SVGPODTypeWrapper.h:
2522 (WebCore::V8SVGPODTypeUtil::toSVGPODType):
2523 * bindings/v8/WorkerContextExecutionProxy.cpp:
2524 (WebCore::WorkerContextExecutionProxy::retrieve):
2525 (WebCore::WorkerContextExecutionProxy::initContextIfNeeded):
2526 (WebCore::WorkerContextExecutionProxy::GetConstructor):
2527 (WebCore::WorkerContextExecutionProxy::ToV8Object):
2528 (WebCore::WorkerContextExecutionProxy::EventToV8Object):
2529 (WebCore::WorkerContextExecutionProxy::toV8):
2530 * bindings/v8/custom/V8AttrCustom.cpp:
2531 (WebCore::ACCESSOR_SETTER):
2532 * bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
2533 (WebCore::NAMED_PROPERTY_GETTER):
2534 (WebCore::NAMED_PROPERTY_SETTER):
2535 * bindings/v8/custom/V8CanvasPixelArrayCustom.cpp:
2536 (WebCore::INDEXED_PROPERTY_GETTER):
2537 (WebCore::INDEXED_PROPERTY_SETTER):
2538 * bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp:
2540 (WebCore::toCanvasStyle):
2541 (WebCore::ACCESSOR_GETTER):
2542 (WebCore::ACCESSOR_SETTER):
2543 (WebCore::CALLBACK_FUNC_DECL):
2544 * bindings/v8/custom/V8ClientRectListCustom.cpp:
2545 (WebCore::INDEXED_PROPERTY_GETTER):
2546 * bindings/v8/custom/V8ClipboardCustom.cpp:
2547 (WebCore::ACCESSOR_GETTER):
2548 (WebCore::CALLBACK_FUNC_DECL):
2549 * bindings/v8/custom/V8CustomBinding.cpp:
2550 (WebCore::ACCESSOR_GETTER):
2551 (WebCore::INDEXED_ACCESS_CHECK):
2552 (WebCore::NAMED_ACCESS_CHECK):
2553 (WebCore::V8Custom::GetTargetFrame):
2554 * bindings/v8/custom/V8CustomSQLStatementCallback.cpp:
2555 (WebCore::V8CustomSQLStatementCallback::handleEvent):
2556 * bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp:
2557 (WebCore::V8CustomSQLStatementErrorCallback::handleEvent):
2558 * bindings/v8/custom/V8CustomSQLTransactionCallback.cpp:
2559 (WebCore::V8CustomSQLTransactionCallback::handleEvent):
2560 * bindings/v8/custom/V8CustomSQLTransactionErrorCallback.cpp:
2561 (WebCore::V8CustomSQLTransactionErrorCallback::handleEvent):
2562 * bindings/v8/custom/V8DOMWindowCustom.cpp:
2563 (WebCore::V8Custom::WindowSetTimeoutImpl):
2564 (WebCore::ACCESSOR_SETTER):
2565 (WebCore::CALLBACK_FUNC_DECL):
2566 (WebCore::ACCESSOR_GETTER):
2567 (WebCore::INDEXED_PROPERTY_GETTER):
2568 (WebCore::NAMED_PROPERTY_GETTER):
2569 (WebCore::V8Custom::ClearTimeoutImpl):
2570 (WebCore::NAMED_ACCESS_CHECK):
2571 (WebCore::INDEXED_ACCESS_CHECK):
2572 * bindings/v8/custom/V8DatabaseCustom.cpp:
2573 (WebCore::CALLBACK_FUNC_DECL):
2574 * bindings/v8/custom/V8DocumentCustom.cpp:
2575 (WebCore::CALLBACK_FUNC_DECL):
2576 * bindings/v8/custom/V8DocumentLocationCustom.cpp:
2577 (WebCore::ACCESSOR_GETTER):
2578 (WebCore::ACCESSOR_SETTER):
2579 * bindings/v8/custom/V8ElementCustom.cpp:
2580 (WebCore::CALLBACK_FUNC_DECL):
2581 (WebCore::ACCESSOR_SETTER):
2582 (WebCore::ACCESSOR_GETTER):
2583 * bindings/v8/custom/V8EventCustom.cpp:
2584 (WebCore::ACCESSOR_SETTER):
2585 (WebCore::ACCESSOR_GETTER):
2586 * bindings/v8/custom/V8HTMLAudioElementConstructor.cpp:
2587 (WebCore::CALLBACK_FUNC_DECL):
2588 * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
2589 (WebCore::CALLBACK_FUNC_DECL):
2590 * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
2591 (WebCore::getNamedItems):
2593 (WebCore::NAMED_PROPERTY_GETTER):
2594 (WebCore::CALLBACK_FUNC_DECL):
2595 * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
2596 (WebCore::NAMED_PROPERTY_GETTER):
2597 (WebCore::CALLBACK_FUNC_DECL):
2598 (WebCore::ACCESSOR_GETTER):
2599 * bindings/v8/custom/V8HTMLFormElementCustom.cpp:
2600 (WebCore::INDEXED_PROPERTY_GETTER):
2601 (WebCore::NAMED_PROPERTY_GETTER):
2602 (WebCore::CALLBACK_FUNC_DECL):
2603 * bindings/v8/custom/V8HTMLFrameElementCustom.cpp:
2604 (WebCore::ACCESSOR_SETTER):
2605 * bindings/v8/custom/V8HTMLFrameSetElementCustom.cpp:
2606 (WebCore::NAMED_PROPERTY_GETTER):
2607 * bindings/v8/custom/V8HTMLIFrameElementCustom.cpp:
2608 (WebCore::ACCESSOR_SETTER):
2609 * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
2610 (WebCore::CALLBACK_FUNC_DECL):
2611 * bindings/v8/custom/V8HTMLInputElementCustom.cpp:
2612 (WebCore::ACCESSOR_GETTER):
2613 (WebCore::ACCESSOR_SETTER):
2614 (WebCore::CALLBACK_FUNC_DECL):
2615 * bindings/v8/custom/V8HTMLOptionElementConstructor.cpp:
2616 (WebCore::CALLBACK_FUNC_DECL):
2617 * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
2618 (WebCore::CALLBACK_FUNC_DECL):
2619 (WebCore::ACCESSOR_GETTER):
2620 (WebCore::ACCESSOR_SETTER):
2621 (WebCore::INDEXED_PROPERTY_GETTER):
2622 (WebCore::INDEXED_PROPERTY_SETTER):
2623 * bindings/v8/custom/V8HTMLPlugInElementCustom.cpp:
2624 (WebCore::NAMED_PROPERTY_GETTER):
2625 (WebCore::NAMED_PROPERTY_SETTER):
2626 (WebCore::INDEXED_PROPERTY_GETTER):
2627 (WebCore::INDEXED_PROPERTY_SETTER):
2628 * bindings/v8/custom/V8HTMLSelectElementCollectionCustom.cpp:
2629 (WebCore::NAMED_PROPERTY_GETTER):
2630 (WebCore::INDEXED_PROPERTY_SETTER):
2631 * bindings/v8/custom/V8HTMLSelectElementCustom.cpp:
2632 (WebCore::CALLBACK_FUNC_DECL):
2633 (WebCore::removeElement):
2634 * bindings/v8/custom/V8InspectorControllerCustom.cpp:
2635 (WebCore::CALLBACK_FUNC_DECL):
2636 * bindings/v8/custom/V8LocationCustom.cpp:
2637 (WebCore::ACCESSOR_SETTER):
2638 (WebCore::ACCESSOR_GETTER):
2639 (WebCore::CALLBACK_FUNC_DECL):
2640 (WebCore::INDEXED_ACCESS_CHECK):
2641 (WebCore::NAMED_ACCESS_CHECK):
2642 * bindings/v8/custom/V8MessageChannelConstructor.cpp:
2643 (WebCore::CALLBACK_FUNC_DECL):
2644 * bindings/v8/custom/V8MessagePortCustom.cpp:
2645 (WebCore::ACCESSOR_GETTER):
2646 (WebCore::ACCESSOR_SETTER):
2647 (WebCore::CALLBACK_FUNC_DECL):
2648 * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
2649 (WebCore::INDEXED_PROPERTY_GETTER):
2650 (WebCore::NAMED_PROPERTY_GETTER):
2651 * bindings/v8/custom/V8NavigatorCustom.cpp:
2652 (WebCore::ACCESSOR_GETTER):
2653 * bindings/v8/custom/V8NodeCustom.cpp:
2654 (WebCore::CALLBACK_FUNC_DECL):
2655 * bindings/v8/custom/V8NodeIteratorCustom.cpp:
2657 (WebCore::CALLBACK_FUNC_DECL):
2658 * bindings/v8/custom/V8NodeListCustom.cpp:
2659 (WebCore::NAMED_PROPERTY_GETTER):
2660 * bindings/v8/custom/V8SQLResultSetRowListCustom.cpp:
2661 (WebCore::CALLBACK_FUNC_DECL):
2662 * bindings/v8/custom/V8SQLTransactionCustom.cpp:
2663 (WebCore::CALLBACK_FUNC_DECL):
2664 * bindings/v8/custom/V8SVGElementInstanceCustom.cpp:
2665 (WebCore::CALLBACK_FUNC_DECL):
2666 * bindings/v8/custom/V8SVGLengthCustom.cpp:
2667 (WebCore::ACCESSOR_GETTER):
2668 (WebCore::CALLBACK_FUNC_DECL):
2669 * bindings/v8/custom/V8SVGMatrixCustom.cpp:
2670 (WebCore::CALLBACK_FUNC_DECL):
2671 * bindings/v8/custom/V8StorageCustom.cpp:
2672 (WebCore::V8Custom::v8StorageNamedPropertyEnumerator):
2673 (WebCore::storageGetter):
2674 (WebCore::storageSetter):
2675 (WebCore::storageDeleter):
2676 * bindings/v8/custom/V8StyleSheetListCustom.cpp:
2677 (WebCore::NAMED_PROPERTY_GETTER):
2678 * bindings/v8/custom/V8TreeWalkerCustom.cpp:
2680 (WebCore::CALLBACK_FUNC_DECL):
2681 * bindings/v8/custom/V8WebKitCSSMatrixConstructor.cpp:
2682 (WebCore::CALLBACK_FUNC_DECL):
2683 * bindings/v8/custom/V8WorkerContextCustom.cpp:
2684 (WebCore::ACCESSOR_GETTER):
2685 (WebCore::ACCESSOR_SETTER):
2686 (WebCore::SetTimeoutOrInterval):
2687 (WebCore::CALLBACK_FUNC_DECL):
2688 * bindings/v8/custom/V8WorkerCustom.cpp:
2689 (WebCore::CALLBACK_FUNC_DECL):
2690 (WebCore::ACCESSOR_GETTER):
2691 (WebCore::ACCESSOR_SETTER):
2692 * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
2693 (WebCore::CALLBACK_FUNC_DECL):
2694 * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
2695 (WebCore::ACCESSOR_GETTER):
2696 (WebCore::ACCESSOR_SETTER):
2697 (WebCore::CALLBACK_FUNC_DECL):
2698 * bindings/v8/custom/V8XMLHttpRequestUploadCustom.cpp:
2699 (WebCore::ACCESSOR_GETTER):
2700 (WebCore::ACCESSOR_SETTER):
2701 (WebCore::CALLBACK_FUNC_DECL):
2702 * bindings/v8/custom/V8XSLTProcessorCustom.cpp:
2703 (WebCore::CALLBACK_FUNC_DECL):
2705 2009-07-08 Pierre d'Herbemont <pdherbemont@apple.com>
2707 Reviewed by Simon Fraser.
2709 Make sure we can click outside the slider thumb and start dragging.
2710 https://bugs.webkit.org/show_bug.cgi?id=26229
2712 Previously we were assuming that if the thumb hasn't been clicked, we
2713 wouldn't issue any value change upon dragging.
2715 We need to handle the two different cases:
2716 - Clicked in the thumb, we need to make sure the cursor is always pointing
2717 the same slider thumb point.
2718 - Clicked outside, the cursor should always be pointing to the center of
2721 For simplicity, we don't remember the original point of the mouse down,
2722 but a vector between that point and the thumb.
2724 * rendering/RenderSlider.cpp:
2725 (WebCore::SliderThumbElement::SliderThumbElement):
2726 (WebCore::SliderThumbElement::defaultEventHandler):
2727 (WebCore::RenderSlider::mouseEventVectorToThumb): Utility function.
2728 * rendering/RenderSlider.h:
2730 2009-07-08 Pierre d'Herbemont <pdherbemont@apple.com>
2732 Reviewed by Simon Fraser.
2734 https://bugs.webkit.org/show_bug.cgi?id=27100
2735 <rdar://problem/7042621>
2737 Don't display "loading" in the <video> controller when
2738 there is no src specified.
2740 * rendering/MediaControlElements.cpp:
2741 (WebCore::MediaControlStatusDisplayElement::update): The only
2742 way to find out if we have an element is currentSrc(). networkState()
2743 will always report LOADING according to the spec.
2745 2009-07-08 Adam Barth <abarth@webkit.org>
2747 Reviewed by Eric Seidel.
2749 [V8] Move V8GCController functions to their own file
2750 https://bugs.webkit.org/show_bug.cgi?id=27102
2752 * bindings/v8/V8GCController.cpp: Added.
2753 * bindings/v8/V8GCController.h: Added.
2754 * bindings/v8/V8Proxy.cpp:
2755 * bindings/v8/V8Proxy.h:
2757 2009-07-08 Jeremy Orlow <jorlow@chromium.org>
2759 Reviewed by Darin Fisher.
2761 Split StorageArea and StorageNamespace into an interface and implementation.
2762 https://bugs.webkit.org/show_bug.cgi?id=27072
2764 I need to split StorageNamespace and StorageArea into an interface and
2765 implementation. In a later patch, I'll implement a proxy interface
2766 that'll run inside the Chromium renderer process.
2768 Additionally, fix the alphabetical ordering of files I recently added
2769 in the project files.
2771 This is a continuation of other refactoring work:
2772 https://bugs.webkit.org/show_bug.cgi?id=25376
2775 * WebCore.vcproj/WebCore.vcproj:
2776 * WebCore.xcodeproj/project.pbxproj:
2777 * WebCoreSources.bkl:
2778 * storage/StorageArea.cpp:
2779 (WebCore::StorageArea::create):
2780 * storage/StorageArea.h:
2781 (WebCore::StorageArea::~StorageArea):
2782 * storage/StorageAreaImpl.cpp: Copied from WebCore/storage/StorageArea.cpp.
2783 (WebCore::StorageAreaImpl::create):
2784 (WebCore::StorageAreaImpl::~StorageAreaImpl):
2785 (WebCore::StorageAreaImpl::StorageAreaImpl):
2786 (WebCore::StorageAreaImpl::copy):
2787 (WebCore::StorageAreaImpl::length):
2788 (WebCore::StorageAreaImpl::key):
2789 (WebCore::StorageAreaImpl::getItem):
2790 (WebCore::StorageAreaImpl::setItem):
2791 (WebCore::StorageAreaImpl::removeItem):
2792 (WebCore::StorageAreaImpl::clear):
2793 (WebCore::StorageAreaImpl::contains):
2794 (WebCore::StorageAreaImpl::importItem):
2795 (WebCore::StorageAreaImpl::securityOrigin):
2796 (WebCore::StorageAreaImpl::close):
2797 (WebCore::StorageAreaImpl::blockUntilImportComplete):
2798 (WebCore::StorageAreaImpl::dispatchStorageEvent):
2799 * storage/StorageAreaImpl.h: Copied from WebCore/storage/StorageArea.h.
2800 * storage/StorageAreaSync.h:
2801 * storage/StorageNamespace.cpp:
2802 (WebCore::StorageNamespace::localStorageNamespace):
2803 (WebCore::StorageNamespace::sessionStorageNamespace):
2804 * storage/StorageNamespace.h:
2805 (WebCore::StorageNamespace::~StorageNamespace):
2806 * storage/StorageNamespaceImpl.cpp: Copied from WebCore/storage/StorageNamespace.cpp.
2807 (WebCore::StorageNamespaceImpl::localStorageNamespace):
2808 (WebCore::StorageNamespaceImpl::sessionStorageNamespace):
2809 (WebCore::StorageNamespaceImpl::StorageNamespaceImpl):
2810 (WebCore::StorageNamespaceImpl::~StorageNamespaceImpl):
2811 (WebCore::StorageNamespaceImpl::copy):
2812 (WebCore::StorageNamespaceImpl::storageArea):
2813 (WebCore::StorageNamespaceImpl::close):
2814 * storage/StorageNamespaceImpl.h: Copied from WebCore/storage/StorageNamespace.h.
2816 2009-07-08 Adam Barth <abarth@webkit.org>
2818 Reviewed by Eric Seidel.
2820 [V8] Move garbage collector related functions from V8Proxy to V8GCController
2821 https://bugs.webkit.org/show_bug.cgi?id=26967
2823 This patch just moves the functions around in V8Proxy. We'll actually
2824 move them to a separate file in another patch.
2826 * bindings/v8/NPV8Object.cpp:
2828 * bindings/v8/ScheduledAction.cpp:
2829 (WebCore::ScheduledAction::ScheduledAction):
2830 (WebCore::ScheduledAction::~ScheduledAction):
2831 * bindings/v8/ScriptController.cpp:
2832 (WebCore::ScriptController::gcProtectJSWrapper):
2833 (WebCore::ScriptController::gcUnprotectJSWrapper):
2834 * bindings/v8/ScriptInstance.cpp:
2835 (WebCore::V8ScriptInstance::clear):
2836 (WebCore::V8ScriptInstance::set):
2837 * bindings/v8/ScriptValue.h:
2838 (WebCore::ScriptValue::ScriptValue):
2839 (WebCore::ScriptValue::operator=):
2840 (WebCore::ScriptValue::clear):
2841 * bindings/v8/V8AbstractEventListener.cpp:
2842 (WebCore::V8AbstractEventListener::disposeListenerObject):
2843 * bindings/v8/V8LazyEventListener.cpp:
2844 (WebCore::V8LazyEventListener::~V8LazyEventListener):
2845 (WebCore::V8LazyEventListener::getListenerFunction):
2846 (WebCore::V8LazyEventListener::getWrappedListenerFunction):
2847 * bindings/v8/V8NodeFilterCondition.cpp:
2848 (WebCore::V8NodeFilterCondition::V8NodeFilterCondition):
2849 (WebCore::V8NodeFilterCondition::~V8NodeFilterCondition):
2850 * bindings/v8/V8Proxy.cpp:
2851 (WebCore::V8GCController::registerGlobalHandle):
2852 (WebCore::V8GCController::unregisterGlobalHandle):
2853 (WebCore::V8GCController::gcProtect):
2854 (WebCore::V8GCController::gcUnprotect):
2855 (WebCore::V8Proxy::destroyGlobal):
2856 (WebCore::V8Proxy::updateDocumentWrapper):
2857 (WebCore::V8Proxy::clearDocumentWrapper):
2858 (WebCore::V8Proxy::disposeContextHandles):
2859 (WebCore::V8Proxy::initContextIfNeeded):
2860 * bindings/v8/V8Proxy.h:
2862 (WebCore::GlobalHandleInfo::GlobalHandleInfo):
2863 * bindings/v8/custom/V8CustomEventListener.cpp:
2864 (WebCore::V8EventListener::V8EventListener):
2866 2009-07-08 Daniel Bates <dbates@intudata.com>
2868 Reviewed by Adam Barth.
2870 https://bugs.webkit.org/show_bug.cgi?id=26918
2872 Prevents injection of HTML Base tag.
2874 Tests: http/tests/security/xssAuditor/base-href-control-char.html
2875 http/tests/security/xssAuditor/base-href-null-char.html
2876 http/tests/security/xssAuditor/base-href-safe.html
2877 http/tests/security/xssAuditor/base-href-safe2.html
2878 http/tests/security/xssAuditor/base-href-scheme-relative.html
2879 http/tests/security/xssAuditor/base-href.html
2881 * html/HTMLBaseElement.cpp:
2882 (WebCore::HTMLBaseElement::parseMappedAttribute):
2883 (WebCore::HTMLBaseElement::process): Modified to call XSSAuditor::canSetBaseElementURL
2884 to determine if it is safe to use base element URL.
2885 * html/HTMLBaseElement.h: Added field m_hrefAttrValue to store unparsed base element URL.
2886 * page/XSSAuditor.cpp:
2887 (WebCore::XSSAuditor::canSetBaseElementURL):
2888 * page/XSSAuditor.h:
2890 2009-07-08 Nate Chapin <japhet@chromium.org>
2892 Reviewed by Dimitri Glazkov.
2894 Upstream V8 npruntime bindings.
2896 https://bugs.webkit.org/show_bug.cgi?id=27094
2898 * bindings/v8/npruntime.cpp: Upstreamed from src.chromium.org.
2899 (StringKey::operator==):
2900 (StringKey::StringKeyHash::hash):
2901 (StringKey::StringKeyHash::equal):
2902 (StringKeyHashTraits::constructDeletedValue):
2903 (StringKeyHashTraits::isDeletedValue):
2904 (getStringIdentifierMap):
2905 (getIntIdentifierMap):
2906 * bindings/v8/npruntime_impl.h: Upstreamed from src.chromium.org.
2907 * bindings/v8/npruntime_internal.h: Upstreamed from src.chromium.org.
2908 * bindings/v8/npruntime_priv.h: Upstreamed from src.chromium.org.
2910 2009-07-08 Dumitru Daniliuc <dumi@chromium.org>
2912 Reviewed by Darin Fisher.
2914 Extending the PlatformFileHandle definition from PLATFORM(WIN) to
2917 https://bugs.webkit.org/show_bug.cgi?id=27013
2919 * platform/FileSystem.h:
2921 2009-07-08 Daniel Bates <dbates@intudata.com>
2923 Reviewed by Adam Barth.
2925 https://bugs.webkit.org/show_bug.cgi?id=27071
2927 Resolves issue when HTTP parameters contain null- and non-null-control- characters.
2929 Tests: http/tests/security/xssAuditor/anchor-url-dom-write-location-inline-event-null-char.html
2930 http/tests/security/xssAuditor/embed-tag-control-char.html
2931 http/tests/security/xssAuditor/embed-tag-null-char.html
2932 http/tests/security/xssAuditor/embed-tag.html
2933 http/tests/security/xssAuditor/link-onclick-control-char.html
2934 http/tests/security/xssAuditor/link-onclick-null-char.html
2935 http/tests/security/xssAuditor/object-embed-tag-control-char.html
2936 http/tests/security/xssAuditor/object-embed-tag-null-char.html
2937 http/tests/security/xssAuditor/object-embed-tag.html
2938 http/tests/security/xssAuditor/object-tag.html
2939 http/tests/security/xssAuditor/script-tag-post-control-char.html
2940 http/tests/security/xssAuditor/script-tag-post-null-char.html
2941 http/tests/security/xssAuditor/script-tag-with-source-control-char.html
2942 http/tests/security/xssAuditor/script-tag-with-source-null-char.html
2944 * page/XSSAuditor.cpp:
2945 (WebCore::isNonNullControlCharacter): Called by XSSAuditor::decodeURL.
2946 (WebCore::XSSAuditor::canEvaluate):
2947 (WebCore::XSSAuditor::canCreateInlineEventListener):
2948 (WebCore::XSSAuditor::canLoadObject):
2949 (WebCore::XSSAuditor::decodeURL): Added parameters matchNullCharacters,
2950 and matchNonNullControlCharacters.
2951 (WebCore::XSSAuditor::findInRequest): Added parameters matchNullCharacters,
2952 and matchNonNullControlCharacters.
2953 * page/XSSAuditor.h:
2955 2009-07-08 Marc-Antoine Ruel <maruel@chromium.org>
2957 Reviewed by Dimitri Glazkov.
2959 Add DerivesSourcesAllInOne.cpp to help with release windows compilation.
2960 https://bugs.webkit.org/show_bug.cgi?id=27093
2962 This is specific for v8, no change in behavior.
2964 * bindings/v8/DerivedSourcesAllInOne.cpp: Added.
2966 2009-07-08 Pierre d'Herbemont <pdherbemont@apple.com>
2968 Reviewed by Simon Fraser.
2970 https://bugs.webkit.org/show_bug.cgi?id=27086
2972 Make sure the Media controller doesn't fade in for no reason.
2973 This is happening because a update() call to the controller
2974 panel may reset the opacity to 1.0, given that it reloads the
2977 We also add a different fade in and fade out time to soften
2978 the fade out effect.
2980 No test case because this depends on how the movie is loaded.
2982 * rendering/RenderMedia.cpp:
2983 (WebCore::RenderMedia::RenderMedia):
2984 (WebCore::RenderMedia::updateControls):
2985 (WebCore::RenderMedia::updateControlVisibility): Simplify
2986 , and make sure we stop the timer if there is no animation
2988 (WebCore::RenderMedia::opacityAnimationTimerFired):
2989 * rendering/RenderMedia.h:
2991 2009-07-08 David Kilzer <ddkilzer@apple.com>
2993 Bug 27081: Wrap RunLoopTimerCF.cpp in PLATFORM(MAC) && HAVE(RUNLOOP_TIMER)
2995 <https://bugs.webkit.org/show_bug.cgi?id=27081>
2997 Reviewed by Timothy Hatcher.
2999 * platform/cf/RunLoopTimerCF.cpp: This code is only used on
3000 Mac OS X when HAVE(RUNLOOP_TIMER) is enabled, so wrap the code
3001 in that macro as well.
3003 2009-07-08 Greg Bolsinga <bolsinga@apple.com>
3005 Reviewed by Darin Adler.
3007 Add -[WebView _isProcessingUserGesture]
3008 https://bugs.webkit.org/show_bug.cgi?id=27084
3010 Rename FrameLoader::userGestureHint() to FrameLoader::isProcessingUserGesture()
3013 * WebCore.base.exp: Add WebCore::FrameLoader::isProcessingUserGesture()
3014 * html/HTMLMediaElement.cpp:
3015 (WebCore::HTMLMediaElement::processingUserGesture):
3016 * loader/FrameLoader.cpp:
3017 (WebCore::FrameLoader::requestFrame):
3018 (WebCore::FrameLoader::isProcessingUserGesture):
3019 * loader/FrameLoader.h:
3021 2009-07-08 Alexey Proskuryakov <ap@webkit.org>
3023 Reviewed (an earlier version) by Geoff Garen.
3025 https://bugs.webkit.org/show_bug.cgi?id=27090
3026 Remove lockBackForwardList argument from HTMLFormElement::submit()
3028 No change in behavior, so no tests.
3030 * bindings/js/JSHTMLFormElementCustom.cpp:
3031 (WebCore::JSHTMLFormElement::submit):
3032 * html/HTMLFormElement.cpp:
3033 (WebCore::HTMLFormElement::submit):
3034 * html/HTMLFormElement.h:
3035 * loader/FrameLoader.cpp:
3036 (WebCore::FrameLoader::submitForm):
3037 (WebCore::FrameLoader::scheduleFormSubmission):
3038 * loader/FrameLoader.h:
3039 Don't pass lockBackForwardList around when it's known to be false.
3041 2009-07-08 Marc-Antoine Ruel <maruel@chromium.org>
3043 Reviewed by Adam Barth.
3045 Fix V8 idl codegen to use unique constant names
3046 <https://bugs.webkit.org/show_bug.cgi?id=27089>
3048 Embed the interface name in the global constant names so coagulating all
3049 the .cc files into one compile unit works with V8 bindings.
3051 Nothing added; Still compiles and pass tests.
3053 * bindings/scripts/CodeGeneratorV8.pm:
3055 2009-07-08 Brent Fulgham <bfulgham@webkit.org>
3057 Build fix: Add missing #includes for Windows (cURL) build.
3058 The <winsock2.h> and <windows.h> headers were not being
3059 included in Windows cURL builds.
3061 * platform/network/ResourceHandleInternal.h:
3062 * platform/network/curl/ResourceHandleManager.h:
3064 2009-07-08 Shinichiro Hamaji <hamaji@chromium.org>
3066 Reviewed by David Kilzer.
3068 WebKit needs a style linting tool
3069 https://bugs.webkit.org/show_bug.cgi?id=25884
3071 Fix bunch of style issues in WebCore/rendering.
3072 This patch is created to demonstrate cpplint.py.
3074 No testcase because it's just a style fixes.
3076 * rendering/AutoTableLayout.cpp:
3077 (WebCore::AutoTableLayout::recalcColumn):
3078 (WebCore::AutoTableLayout::layout):
3079 * rendering/InlineFlowBox.cpp:
3080 (WebCore::InlineFlowBox::placeEllipsisBox):
3081 * rendering/InlineTextBox.cpp:
3082 (WebCore::InlineTextBox::paintTextMatchMarker):
3083 * rendering/MediaControlElements.cpp:
3084 (WebCore::MediaControlTimelineElement::defaultEventHandler):
3085 * rendering/MediaControlElements.h:
3086 * rendering/RenderArena.cpp:
3087 * rendering/RenderBlock.cpp:
3088 (WebCore::RenderBlock::startDelayUpdateScrollInfo):
3089 (WebCore::RenderBlock::finishDelayUpdateScrollInfo):
3090 (WebCore::RenderBlock::updateScrollInfoAfterLayout):
3091 (WebCore::RenderBlock::positionNewFloats):
3092 (WebCore::RenderBlock::newLine):
3093 (WebCore::RenderBlock::floatBottom):
3094 (WebCore::RenderBlock::leftBottom):
3095 (WebCore::RenderBlock::rightBottom):
3096 * rendering/RenderBox.cpp:
3097 (WebCore::RenderBox::calcReplacedWidthUsing):
3098 * rendering/RenderFieldset.cpp:
3099 (WebCore::RenderFieldset::layoutLegend):
3100 * rendering/RenderFlexibleBox.cpp:
3101 (WebCore::FlexBoxIterator::FlexBoxIterator):
3102 (WebCore::FlexBoxIterator::reset):
3103 (WebCore::FlexBoxIterator::first):
3104 (WebCore::FlexBoxIterator::next):
3105 (WebCore::RenderFlexibleBox::layoutVerticalBox):
3106 * rendering/RenderFrameSet.cpp:
3107 (WebCore::borderStartEdgeColor):
3108 * rendering/RenderFrameSet.h:
3109 * rendering/RenderImage.cpp:
3110 * rendering/RenderLayer.cpp:
3111 (WebCore::RenderLayer::updateVisibilityStatus):
3112 (WebCore::RenderLayer::calculateClipRects):
3113 (WebCore::RenderLayer::calculateRects):
3114 * rendering/RenderListBox.cpp:
3115 (WebCore::RenderListBox::panScroll):
3116 * rendering/RenderMarquee.cpp:
3117 (WebCore::RenderMarquee::updateMarqueeStyle):
3118 * rendering/RenderMedia.cpp:
3119 (WebCore::RenderMedia::updateControls):
3120 * rendering/RenderObject.cpp:
3121 (WebCore::RenderObject::drawLineForBoxSide):
3122 (WebCore::RenderObject::localCaretRect):
3123 * rendering/RenderSVGImage.cpp:
3124 (WebCore::RenderSVGImage::adjustRectsForAspectRatio):
3125 * rendering/RenderSlider.h:
3126 * rendering/RenderTable.cpp:
3127 (WebCore::RenderTable::outerBorderBottom):
3128 * rendering/RenderTableCol.h:
3129 * rendering/RenderTextControlSingleLine.cpp:
3130 (WebCore::RenderTextControlSingleLine::itemIsSeparator):
3131 * rendering/RenderThemeChromiumSkia.cpp:
3132 (WebCore::RenderThemeChromiumSkia::supportsHover):
3133 * rendering/RenderThemeChromiumWin.cpp:
3134 (WebCore::RenderThemeChromiumWin::supportsFocusRing):
3135 * rendering/SVGCharacterLayoutInfo.cpp:
3136 (WebCore::SVGCharacterLayoutInfo::addStackContent):
3137 * rendering/SVGCharacterLayoutInfo.h:
3138 * rendering/TextControlInnerElements.h:
3139 * rendering/bidi.cpp:
3140 (WebCore::RenderBlock::computeHorizontalPositionsForLine):
3142 2009-07-07 Oliver Hunt <oliver@apple.com>
3144 Reviewed by Maciej Stachowiak.
3146 Reduce complexity of lifetime management in DynamicNodeList caches
3147 <https://bugs.webkit.org/show_bug.cgi?id=27068>
3149 Switch the Cache object used by DynamicNodeList into a normal
3150 refcounted object rather than having a weird flag controlled
3151 refcounting system, where positive refcount did not automatically
3152 imply the cache object would actually still be live.
3154 * dom/DynamicNodeList.cpp:
3155 (WebCore::DynamicNodeList::DynamicNodeList):
3156 (WebCore::DynamicNodeList::~DynamicNodeList):
3157 (WebCore::DynamicNodeList::Caches::Caches):
3158 (WebCore::DynamicNodeList::Caches::create):
3159 * dom/DynamicNodeList.h:
3161 (WebCore::Node::childNodes):
3162 (WebCore::Node::getElementsByTagNameNS):
3163 (WebCore::Node::getElementsByName):
3164 (WebCore::Node::getElementsByClassName):
3165 (WebCore::NodeListsNodeData::invalidateCaches):
3166 (WebCore::NodeListsNodeData::isEmpty):
3167 * dom/NodeRareData.h:
3168 (WebCore::NodeListsNodeData::NodeListsNodeData):
3170 2009-07-07 Simon Fraser <simon.fraser@apple.com>
3172 Reviewed by Dan Bernstein.
3174 -webkit-perspective should be a Length
3175 https://bugs.webkit.org/show_bug.cgi?id=27066
3177 -webkit-perspective should not take a magic valueless number, but should
3178 be a normal Length value which responds to zooming. Treat valueless numbers
3179 as pixels for backward compatibility.
3181 Test: transforms/3d/general/perspective-units.html
3183 * css/CSSParser.cpp:
3184 (WebCore::CSSParser::parseValue):
3185 * css/CSSStyleSelector.cpp:
3186 (WebCore::CSSStyleSelector::applyProperty):
3188 2009-07-07 Pierre d'Herbemont <pdherbemont@apple.com>
3190 Reviewed by Simon Fraser.
3192 https://bugs.webkit.org/show_bug.cgi?id=27047
3194 We need to make sure that when we reattach, we also reattach
3195 the children in every MediaControlElement. Else we may end up
3196 having no remaining or elapsed time.
3198 We have to handle that, because we are using a special shadow
3199 tree in the DOM, and that we are ourselves handling
3200 attaching/detaching the renderer.
3202 The strategy here is to try to implement ::attach(), and try
3203 to reuse as much code as we can from the super class, including
3204 children attachement.
3206 Test: media/controls-after-reload.html
3208 * rendering/MediaControlElements.cpp:
3209 (WebCore::MediaControlElement::styleForElement): Code factoring.
3210 (WebCore::MediaControlElement::rendererIsNeeded): Code factoring.
3211 (WebCore::MediaControlElement::attach): Implement attach
3212 and call super class so that children are also attached.
3213 (WebCore::MediaControlElement::updateStyle): Use attach()
3214 (WebCore::MediaControlInputElement::styleForElement): Code factoring.
3215 (WebCore::MediaControlInputElement::rendererIsNeeded): Code factoring.
3216 (WebCore::MediaControlInputElement::attach): See above.
3217 (WebCore::MediaControlInputElement::updateStyle): Use attach()
3218 * rendering/MediaControlElements.h:
3219 * rendering/RenderMedia.cpp:
3220 (WebCore::RenderMedia::updateControls): Directly run attach() on
3221 the m_panel, which is a root node for our shadow tree.
3223 2009-07-07 Simon Fraser <simon.fraser@apple.com>
3225 Reviewed by Dan Bernstein.
3227 Repaint issue after layer drops out of composited mode.
3228 <https://bugs.webkit.org/show_bug.cgi?id=27022>
3230 RenderLayers cache repaint rects in the form of m_repaintRect and m_outlineBox,
3231 and expect these to stay valid from one style change to the next. These rects
3232 are relative to the repaint container, so if a layer stops being composited,
3233 we need to recompute them.
3235 Test: compositing/repaint/layer-repaint-rects.html
3237 * rendering/RenderLayer.cpp:
3238 (WebCore::RenderLayer::computeRepaintRects):
3239 * rendering/RenderLayer.h:
3240 * rendering/RenderLayerCompositor.cpp:
3241 (WebCore::RenderLayerCompositor::updateBacking):
3243 2009-07-07 Dan Bernstein <mitz@apple.com>
3245 Reviewed by Dave Hyatt and Darin Adler.
3247 - fix https://bugs.webkit.org/show_bug.cgi?id=26963
3248 <rdar://problem/7030998> Reproducible crash at
3249 FontCache::getFontData() when a custom font is used in a pseudo-style
3251 Test: fast/css/pseudo-cache-stale.html
3254 (WebCore::Element::pseudoStyleCacheIsInvalid): Added. Given the old
3255 style and the new style, goes over cached pseudo-styles in the old
3256 style and re-resolves the same style types off the new style. If any of
3257 the new pseudo-styles is different from the currently cached
3258 corresponding style, returns true. Otherwise, returns false.
3259 (WebCore::Element::recalcStyle): Validate the pseudo-style cache before
3260 deciding to keep the existing style.
3262 * rendering/RenderObject.cpp:
3263 (WebCore::RenderObject::uncachedFirstLineStyle): Added this version that
3264 returns an uncached first-line style based off the given style.
3265 (WebCore::RenderObject::getUncachedPseudoStyle): Added the 'ownStyle'
3267 * rendering/RenderObject.h:
3268 * rendering/style/RenderStyle.cpp:
3269 (WebCore::RenderStyle::getPseudoStyleCache): Added. Returns the cached
3270 pseudo-styles in the passed-in vector.
3271 * rendering/style/RenderStyle.h:
3273 2009-07-07 Dan Bernstein <mitz@apple.com>
3275 Reviewed by Simon Fraser.
3277 - fix https://bugs.webkit.org/show_bug.cgi?id=27042
3278 <rdar://problem/7010981> Incomplete painting of newly created floats
3280 Tests: fast/repaint/float-in-new-block-with-layout-delta.html
3281 fast/repaint/float-new-in-block.html
3283 * rendering/RenderBlock.cpp:
3284 (WebCore::RenderBlock::layoutBlockChildren): If the child has never been
3285 laid out before, paint its overhanging floats in addition to itself.
3286 * rendering/RenderBlock.h:
3287 (WebCore::RenderBlock::FloatWithRect::FloatWithRect): Added and
3288 initialized a boolean everHadLayout member.
3289 * rendering/bidi.cpp:
3290 (WebCore::RenderBlock::layoutInlineChildren): Paint floats that have
3291 never been laid out before and did not move from (0, 0).
3293 2009-07-07 Brady Eidson <beidson@apple.com>
3295 Contributions from both Darin Adler and Brady Eidson.
3296 Reviewed by Darin Adler.
3298 <rdar://problem/7024039> REGRESSION (r42158): Back-forward navigation does not work correctly on nytimes.com
3300 In r42158 we lost some exclusions to making back/forward items for subframe navigations when a main frame
3301 navigation was still in progress.
3303 This patch makes things even better than it used to be by:
3304 - Locking back/forward history at the time the navigation is scheduled, not after the load has committed.
3305 - Locking back/forward history if *any* ancestor frame is still loading instead of just the main frame.
3307 Test: fast/loader/subframe-navigate-during-main-frame-load.html
3309 * loader/FrameLoader.cpp:
3310 (WebCore::FrameLoader::submitForm): Move out the history locking logic into a standalone function so it can be
3311 used from multiple sites.
3312 (WebCore::mustLockBackForwardList): Returns true if any ancestor frame is still loading.
3313 (WebCore::FrameLoader::scheduleLocationChange): Respect mustLockBackForwardList() in addition to the passed in
3314 lockBackForwardList flag.
3315 (WebCore::FrameLoader::scheduleFormSubmission): Ditto.
3317 2009-07-07 Nate Chapin <japhet@chromium.org>
3319 Reviewed by Darin Fisher.
3321 Upstream DOMObjectsInclude.h from src.chromium.org.
3323 https://bugs.webkit.org/show_bug.cgi?id=27035
3325 * bindings/v8/DOMObjectsInclude.h: Added.
3327 2009-07-07 Nate Chapin <japhet@chromium.org>
3329 Reviewed by David Levin.
3331 Relanding r45559, which was rolled back at r45574.
3333 https://bugs.webkit.org/show_bug.cgi?id=26857
3335 * bindings/scripts/CodeGeneratorV8.pm: Updated a function name in auto-generated bindings.
3336 * bindings/v8/V8Binding.cpp: Moved from src.chromium.org.
3337 * bindings/v8/V8Binding.h: Contents moved from src.chromium.org.
3338 * bindings/v8/V8LazyEventListener.cpp:
3339 (WebCore::V8LazyEventListener::getListenerFunction):
3340 * bindings/v8/V8Proxy.cpp:
3341 (WebCore::handleConsoleMessage):
3342 (WebCore::V8Proxy::compileScript):
3343 (WebCore::V8Proxy::sourceName):
3344 * bindings/v8/WorkerContextExecutionProxy.cpp:
3345 (WebCore::handleConsoleMessage):
3346 * bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
3347 (WebCore::NAMED_PROPERTY_SETTER):
3348 * bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp:
3349 (WebCore::CALLBACK_FUNC_DECL):
3350 * bindings/v8/custom/V8CustomXPathNSResolver.cpp:
3351 (WebCore::V8CustomXPathNSResolver::lookupNamespaceURI):
3352 * bindings/v8/custom/V8DOMWindowCustom.cpp:
3353 (WebCore::CALLBACK_FUNC_DECL):
3354 * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
3355 (WebCore::CALLBACK_FUNC_DECL):
3356 * bindings/v8/custom/V8HTMLIFrameElementCustom.cpp:
3357 (WebCore::ACCESSOR_SETTER):
3358 * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
3359 (WebCore::CALLBACK_FUNC_DECL):
3360 * bindings/v8/custom/V8HTMLSelectElementCustom.cpp:
3361 (WebCore::removeElement):
3362 * bindings/v8/custom/V8SQLTransactionCustom.cpp:
3363 (WebCore::CALLBACK_FUNC_DECL):
3364 * bindings/v8/custom/V8WorkerContextCustom.cpp:
3365 (WebCore::SetTimeoutOrInterval):
3366 * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
3367 (WebCore::CALLBACK_FUNC_DECL):
3369 2009-07-07 Gregory Hughes <gfhughesVO+webkit@gmail.com>
3371 Reviewed by Darin Adler.
3373 AX: Some webpages do not send AXLoadComplete
3374 https://bugs.webkit.org/show_bug.cgi?id=26995
3376 When sending the AXLayoutComplete notification it is possible
3377 that the AXObjectCache was cleared, resulting in no valid
3378 object to send the notification to. This fix ensures that an
3379 AX object is created and cached if one does not already exist.
3381 Not able to add a test because notifications get sent after the layout test is completed.
3384 (WebCore::Document::implicitClose):
3386 2009-07-06 Pierre d'Herbemont <pdherbemont@apple.com>
3388 Reviewed by Simon Fraser.
3390 https://bugs.webkit.org/show_bug.cgi?id=27015
3392 Make sure that the CSS properties letter-spacing, word-spacing,
3393 line-height, text-transform, text-indent, text-shadow,
3394 text-decoration and color do not affect the media element controls,
3397 Controls that display text are only present in when the theme
3398 MediaControllerThemeQT is being used.
3400 Test: media/controls-styling.html
3402 * css/mediaControlsQT.css:
3403 * rendering/MediaControlElements.cpp:
3404 (WebCore::MediaControlElement::updateStyle): Special case for
3405 text-decoration. text-decoration can't be overriden from CSS, because
3406 text-decoration is additive for historical reasons.
3408 2009-07-07 Albert Wong <ajwong@chromium.org>
3410 Not reviewed, Chromium build fix.
3412 Add in missing header + fix syntax issue that crept into last patch.
3413 https://bugs.webkit.org/show_bug.cgi?id=27027
3415 * rendering/RenderThemeChromiumMac.mm:
3416 (WebCore::RenderThemeChromiumMac::paintMediaFullscreenButton):
3418 2009-07-07 Simon Fraser <simon.fraser@apple.com>
3420 Reviewed by Dave Hyatt.
3422 Make use of geometry information to decide which layers become composited.
3424 <rdar://problem/7011947>
3425 <https://bugs.webkit.org/show_bug.cgi?id=27021>
3427 In addition to looking at painting order, also, optionally, take layer
3428 overlap into account when deciding which RenderLayers need to be composited.
3430 No testcase because DRT doesn't dump which layers are composited.
3433 * page/FrameView.cpp:
3434 (WebCore::FrameView::updateCompositingLayers):
3435 Removed the unused CompositingUpdate parameter, and just do an early return
3436 when there is no view.
3438 * rendering/RenderLayer.h:
3439 * rendering/RenderLayer.cpp:
3440 (WebCore::RenderLayer::rendererContentChanged):
3441 (WebCore::RenderLayer::dirtyZOrderLists):
3442 (WebCore::RenderLayer::dirtyNormalFlowList):
3443 (WebCore::RenderLayer::styleChanged):
3444 (WebCore::RenderLayer::mustOverlapCompositedLayers):
3445 (WebCore::RenderLayer::setMustOverlapCompositedLayers):
3446 Change "overlay" to "overlap" for consistency with the use of "overlap"
3449 * rendering/RenderLayerBacking.cpp:
3450 (WebCore::RenderLayerBacking::updateAfterLayout):
3451 compositingLayersNeedUpdate() renamed to compositingLayersNeedRebuild().
3453 (WebCore::RenderLayerBacking::startAnimation):
3454 (WebCore::RenderLayerBacking::startTransition):
3455 Tell the compositor that we started an accelerated animation or transition.
3457 * rendering/RenderLayerCompositor.h:
3458 (WebCore::RenderLayerCompositor::compositingLayersNeedRebuild):
3459 Renamed, since it's explicitly about changes in hierarchy now.
3461 (WebCore::RenderLayerCompositor::setCompositingConsultsOverlap):
3462 (WebCore::RenderLayerCompositor::compositingConsultsOverlap):
3463 New getter and setter for whether compositing should take overlap into account.
3465 * rendering/RenderLayerCompositor.cpp:
3466 (WebCore::RenderLayerCompositor::RenderLayerCompositor):
3467 Add m_compositingConsultsOverlap, re-order some member variables.
3469 (WebCore::RenderLayerCompositor::cacheAcceleratedCompositingEnabledFlag):
3470 Whitespace cleanup and method rename.
3472 (WebCore::RenderLayerCompositor::setCompositingLayersNeedRebuild):
3473 Method and variable renaming.
3475 (WebCore::RenderLayerCompositor::updateCompositingLayers):
3476 Now we have to run through the layer hierarchy every time if looking
3477 at overlap, because changes in layout can now alter compositing behavior.
3478 We minimize work by tracking whether we actually need to change the layer
3479 hierarchy via needLayerRebuild.
3481 (WebCore::RenderLayerCompositor::updateBacking):
3482 3D transforms turn off overlap mode.
3484 (WebCore::RenderLayerCompositor::layerWasAdded):
3485 (WebCore::RenderLayerCompositor::layerWillBeRemoved):
3488 (WebCore::RenderLayerCompositor::addToOverlapMap):
3489 (WebCore::RenderLayerCompositor::overlapsCompositedLayers):
3490 Utility methods to add a layer to the overlapMap (computing the absolute
3491 bounding box only if we haven't already done so), and testing the map
3494 (WebCore::RenderLayerCompositor::computeCompositingRequirements):
3495 If a layer would composite only because it comes after other compositing
3496 layers in the painting order, then consult the overlap map to determine whether
3497 it overlaps, and thus actually needs to composite.
3499 Add layers to the map when they must be composited.
3501 (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
3502 Only do re-parenting work if the updateHierarchy flag is set.
3504 (WebCore::RenderLayerCompositor::didStartAcceleratedAnimation):
3505 When we start an accelerated transition or animation, we stop looking at
3506 overlap because we can no longer guarantee correct front-to-back ordering while the
3507 accelerated animation is running.
3509 (WebCore::RenderLayerCompositor::needsToBeComposited):
3512 * rendering/RenderView.cpp:
3513 (WebCore::RenderView::setMaximalOutlineSize):
3514 Add comment indicating that this could be optimized.
3516 2009-07-14 Anton Muhin <antonm@chromium.org>
3518 Reviewed by Darin Fisher.
3520 Speed up creation of V8 wrappers for DOM nodes.
3522 https://bugs.webkit.org/show_bug.cgi?id=26882
3524 This patch doesn't require new tests as it a set of refactorings
3525 to speed up wrapper creation.
3527 * bindings/v8/V8Proxy.cpp:
3528 * bindings/v8/V8Proxy.h:
3530 2009-07-07 Jan Michael Alonzo <jmalonzo@webkit.org>
3532 Reviewed by Gustavo Noronha.
3534 [GTK] textarea height property works only if other property are defined
3535 https://bugs.webkit.org/show_bug.cgi?id=18984
3537 Let WebCore handle textarea's metrics instead of readjusting it RenderthemeGtk.
3539 Test: fast/forms/textarea-metrics.html
3541 * platform/gtk/RenderThemeGtk.cpp:
3542 * platform/gtk/RenderThemeGtk.h:
3544 2009-07-07 Ben Murdoch <benm@google.com>
3546 Reviewed by Antti Koivisto.
3548 HTML5 Database becomes locked if a transaction is in progress when the page is refreshed.
3549 https://bugs.webkit.org/show_bug.cgi?id=25711
3551 Fix for https://bugs.webkit.org/show_bug.cgi?id=25711 where web
3552 storage databases could become locked until the browser is shut
3553 down if the page is refreshed whilst a transaction is in progress.
3555 Test: storage/database-lock-after-reload.html
3557 * storage/Database.cpp:
3558 (WebCore::Database::Database):
3559 (WebCore::Database::close): add code to inform the database thread we've closed the database.
3560 (WebCore::Database::performOpenAndVerify): add code to inform the database thread we've opened a database.
3561 * storage/Database.h:
3562 (WebCore::Database::opened): return true iff the underlying sqlite database has been opened but not closed.
3563 * storage/DatabaseThread.cpp:
3564 (WebCore::DatabaseThread::databaseThread): Before the database thread terminates, close any databases that ran transactions in this thread.
3565 (WebCore::DatabaseThread::recordDatabaseOpen): Records a database that executed a transaction in this thread.
3566 (WebCore::DatabaseThread::recordDatabaseClosed): Removes a database from the set of open databases.
3567 * storage/DatabaseThread.h:
3568 (WebCore::DatabaseThread::getThreadID): return the thread id for the database thread.
3570 2009-07-07 Jiahua Huang <jhuangjiahua@gmail.com>
3572 Reviewed by Jan Alonzo.
3574 [Gtk] Paste of rich text from firefox results garbled markup
3575 https://bugs.webkit.org/show_bug.cgi?id=26791
3577 Fix problem with UTF-16 clipboard pasted.
3579 * manual-tests/gtk/paste-richtext-from-firefox.html: Added.
3580 * platform/gtk/PasteboardGtk.cpp:
3581 (WebCore::Pasteboard::documentFragment):
3583 2009-07-07 Yury Semikhatsky <yurys@chromium.org>
3585 Reviewed by Timothy Hatcher.
3587 Change 'Continue debug' shortcut from F5 to F8 for consistency with Firebug.
3589 https://bugs.webkit.org/show_bug.cgi?id=23849
3591 * inspector/front-end/ScriptsPanel.js:
3592 (WebInspector.ScriptsPanel):
3594 2009-07-06 Albert J. Wong <ajwong@chromium.org>