1 2008-04-17 Eric Carlson <eric.carlson@apple.com>
5 Fix for <rdar://problem/5861642> QTMovieWin returns uninitialized values
7 * platform/graphics/win/QTMovieWin.cpp:
10 (QTMovieWin::setVolume):
11 (QTMovieWin::getNaturalSize):
13 2008-04-17 Marco Barisione <marco.barisione@collabora.co.uk>
15 Reviewed by Alp Toker.
17 http://bugs.webkit.org/show_bug.cgi?id=18335
18 Pango font backend unable to display japanese properly
20 Different fonts can have different glyph indices, so we need to pass
21 the right font when retrieving a glyph index.
23 * platform/graphics/gtk/GlyphPageTreeNodePango.cpp:
24 (WebCore::pango_font_get_glyph): Temporarily override the font in the
25 PangoAnalysis passed to pango_shape.
27 2008-04-17 Anders Carlsson <andersca@apple.com>
29 According to Sam and David, it's "topLevel", not "toplevel".
31 * loader/DocumentLoader.cpp:
32 (WebCore::DocumentLoader::topLevelApplicationCache):
33 * loader/DocumentLoader.h:
34 * loader/appcache/DOMApplicationCache.cpp:
35 (WebCore::DOMApplicationCache::associatedCache):
37 2008-04-17 Anders Carlsson <andersca@apple.com>
41 Add DOMApplicationCache implementation.
46 * dom/EventTarget.cpp:
47 (WebCore::EventTarget::toDOMApplicationCache):
49 Add EventTarget conversion method.
51 * loader/appcache/ApplicationCacheGroup.h:
52 (WebCore::ApplicationCacheGroup::):
53 (WebCore::ApplicationCacheGroup::status):
54 (WebCore::ApplicationCacheGroup::update):
55 (WebCore::ApplicationCacheGroup::newestCache):
58 * loader/appcache/DOMApplicationCache.cpp:
59 * loader/appcache/DOMApplicationCache.h:
62 (WebCore::DOMWindow::clear):
63 (WebCore::DOMWindow::applicationCache):
65 (WebCore::DOMWindow::optionalApplicationCache):
66 Add ApplicationCache member.
68 2008-04-17 Anders Carlsson <andersca@apple.com>
72 * WebCore.vcproj/WebCore.vcproj:
74 2008-04-17 Dean Jackson <dino@apple.com>
78 Fix for <rdar://problem/5849968> translate method should have Y=0 when only X is present
80 Test: fast/css/transform-default-parameter.html
82 * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty):
83 translate function with only X parameter now leaves the Y parameter as zero.
85 2008-04-17 Anders Carlsson <andersca@apple.com>
89 Add plumbing for associating document loaders with application caches.
91 * loader/DocumentLoader.cpp:
92 (WebCore::DocumentLoader::DocumentLoader):
93 (WebCore::DocumentLoader::~DocumentLoader):
94 (WebCore::DocumentLoader::originalURL):
95 (WebCore::DocumentLoader::requestURL):
96 (WebCore::DocumentLoader::responseURL):
97 (WebCore::DocumentLoader::responseMIMEType):
98 (WebCore::DocumentLoader::setCandidateApplicationCacheGroup):
99 (WebCore::DocumentLoader::setApplicationCache):
100 (WebCore::DocumentLoader::toplevelApplicationCache):
101 * loader/DocumentLoader.h:
102 (WebCore::DocumentLoader::candidateApplicationCacheGroup):
103 (WebCore::DocumentLoader::applicationCache):
104 * loader/appcache/ApplicationCacheGroup.h:
105 (WebCore::ApplicationCacheGroup::documentLoaderDestroyed):
107 2008-04-17 Adam Roben <aroben@apple.com>
109 Fix Bug 18544: REGRESSION (r31951): Two fast/xsl tests crash
111 <https://bugs.webkit.org/show_bug.cgi?id=18544>
113 r31951 changed XSLTProcessor::parseErrorFunc to expect a Console* as
114 the context parameter. The caller in XSLTProcessor was changed, but
115 the one in XSLStyleSheet was missed.
117 Reviewed by Alexey Proskuryakov.
119 * xml/XSLStyleSheet.cpp:
120 (WebCore::XSLStyleSheet::parseString): Pass the Console as the context
123 2008-04-17 Adam Roben <aroben@apple.com>
125 Windows build fix after r31981
127 * dom/Document.idl: Omit getCSSCanvasContext from the COM bindings.
129 2008-04-17 Ariya Hidayat <ariya.hidayat@trolltech.com>
133 Implemented getFileModificationTime and pathGetFileName for the Qt port.
135 * platform/qt/FileSystemQt.cpp:
136 (WebCore::getFileModificationTime):
138 2008-04-17 Mark Rowe <mrowe@apple.com>
140 Fix the non-Mac builds that I broke with my Mac build fix.
142 * css/CSSMutableStyleDeclaration.cpp:
143 (WebCore::CSSMutableStyleDeclaration::getLayeredShorthandValue): Explicitly use the size_t version of max
144 to avoid making assumptions about sizeof(size_t).
146 2008-04-17 Mark Rowe <mrowe@apple.com>
148 Rubber-stamped by Dan Bernstein.
152 * css/CSSMutableStyleDeclaration.cpp:
153 (WebCore::CSSMutableStyleDeclaration::getLayeredShorthandValue): Update to use size_t in place of unsigned.
154 * dom/NamedNodeMap.h: Ditto.
155 * page/AccessibilityObject.h: Forward-declare AccessibilityObjectWrapper in the non-Objective-C case too.
157 2008-04-16 Jon Honeycutt <jhoneycutt@apple.com>
161 Use size_t instead of unsigned where appropriate.
163 * css/CSSValueList.h:
164 * dom/NamedAttrMap.h:
165 * rendering/RenderStyle.h:
167 2008-04-15 Jon Honeycutt <jhoneycutt@apple.com>
171 Add some methods to check AccessibilityObject state.
173 * page/AccessibilityObject.cpp:
174 (WebCore::AccessibilityObject::AccessibilityObject): Assert that the
175 passed renderer is not null.
176 (WebCore::AccessibilityObject::isPasswordField): Refactored to use early
178 (WebCore::AccessibilityObject::isPressed): Return true if this is a
179 button in the pressed state.
180 (WebCore::AccessibilityObject::isIndeterminate): Return true if this is
181 a tri-state checkbox in the indeterminate state.
182 (WebCore::AccessibilityObject::isChecked): True if this is a radio
183 button or checkbox in the checked state.
184 (WebCore::AccessibilityObject::isHovered): True if object is currently
185 under the mouse cursor.
186 (WebCore::AccessibilityObject::isMultiSelect): True if this is a select
187 element capable of multi-select.
188 (WebCore::AccessibilityObject::isReadOnly): False if this object has
190 (WebCore::AccessibilityObject::isOffScreen): True if this object is not
191 in the visible portion of the view.
192 * page/AccessibilityObject.h: Grouped methods into is-state and is-kind.
194 2008-04-15 Jon Honeycutt <jhoneycutt@apple.com>
198 Add AccessibilityObjectWrapper to Windows.
200 * WebCore.vcproj/WebCore.vcproj: Add AccessibilityObjectWrapperWin.h
201 * page/AccessibilityObject.h: Include COMPtr.h,
202 AccessibilityObjectWrapperWin.h on Windows. Define wrapper() and
203 setWrapper() if accessibility is present. Add an m_wrapper on Windows.
204 * page/AccessibilityObject.cpp:
205 (WebCore::AccessibilityObject::detach): Clear m_wrapper if
206 accessibility is present.
207 * page/win/AccessibilityObjectWrapperWin.h: Added; defines a wrapper for
208 AccessibilityObjects on Windows.
209 (WebCore::AccessibilityObjectWrapper::attached): Return true if attached
211 (WebCore::AccessibilityObjectWrapper::accessibilityObject): Return the
213 (WebCore::AccessibilityObjectWrapper::AccessibilityObjectWrapper):
215 2008-04-15 Jon Honeycutt <jhoneycutt@apple.com>
219 Add AXObjectCache to Windows.
221 * WebCore.vcproj/WebCore.vcproj: Add AXObjectCacheWin.cpp.
222 * page/AXObjectCache.h: Add handleFocusedUIElementChanged definition to
223 non-Mac platforms, and added stub for it. Replace PLATFORM(MAC)
224 conditional with HAVE(ACCESSIBILITY) for stubs.
225 (WebCore::AXObjectCache::enableAccessibility):
226 (WebCore::AXObjectCache::accessibilityEnabled):
227 * page/win/AXObjectCacheWin.cpp: Added; contains stubs for the methods
229 (WebCore::AXObjectCache::detachWrapper):
230 (WebCore::AXObjectCache::attachWrapper):
231 (WebCore::AXObjectCache::postNotification):
232 (WebCore::AXObjectCache::postNotificationToElement):
233 * config.h: Define HAVE_ACCESSIBILITY on Mac and Windows.
235 2008-04-15 Jon Honeycutt <jhoneycutt@apple.com>
239 * WebCore.vcproj/WebCore.vcproj: Fix path to AXObjectCache.h.
241 2008-04-16 Brady Eidson <beidson@apple.com>
243 Reviewed by Darin Adler
245 Merge the StorageAreaClient into the StorageArea class itself as pure virtual methods.
246 Add "LocalStorageArea" and "SessionStorageArea" implementations, and have SessionStorage
247 and LocalStorage instantiate the appropriate type of StorageArea object.
249 This purpose of this change is because while adding the persistent store to LocalStorage,
250 it became obvious that the client approach wasn't scaling well. Additionally, a StorageArea
251 backing a local storage area required vastly different data members compared to one backing
252 a session storage area.
254 This will be much cleaner going forward.
258 * WebCore.vcproj/WebCore.vcproj:
259 * WebCore.xcodeproj/project.pbxproj:
260 * WebCoreSources.bkl:
262 * storage/LocalStorage.cpp:
263 (WebCore::LocalStorage::storageArea):
264 * storage/LocalStorage.h:
266 * storage/LocalStorageArea.cpp: Added.
267 (WebCore::LocalStorageArea::LocalStorageArea):
268 (WebCore::LocalStorageArea::itemChanged):
269 (WebCore::LocalStorageArea::itemRemoved):
270 (WebCore::LocalStorageArea::dispatchStorageEvent):
271 * storage/LocalStorageArea.h: Added.
272 (WebCore::LocalStorageArea::create):
274 * storage/SessionStorage.cpp:
275 (WebCore::SessionStorage::copy):
276 (WebCore::SessionStorage::storageArea):
277 * storage/SessionStorage.h:
279 * storage/SessionStorageArea.cpp: Added.
280 (WebCore::SessionStorageArea::copy):
281 (WebCore::SessionStorageArea::SessionStorageArea):
282 (WebCore::SessionStorageArea::itemChanged):
283 (WebCore::SessionStorageArea::itemRemoved):
284 (WebCore::SessionStorageArea::dispatchStorageEvent):
285 * storage/SessionStorageArea.h: Added.
286 (WebCore::SessionStorageArea::create):
287 (WebCore::SessionStorageArea::page):
289 * storage/StorageArea.cpp:
290 (WebCore::StorageArea::StorageArea):
291 (WebCore::StorageArea::setItem):
292 (WebCore::StorageArea::removeItem):
293 (WebCore::StorageArea::storageMap):
294 * storage/StorageArea.h:
296 * storage/StorageAreaClient.h: Removed.
298 2008-04-16 David Hyatt <hyatt@apple.com>
300 Add support for the ability to draw directly into CSS images using CanvasRenderingContext2D.
304 Added fast/canvas/canvas-bg.html
308 * WebCore.vcproj/WebCore.vcproj:
309 * WebCore.xcodeproj/project.pbxproj:
310 * WebCoreSources.bkl:
311 * css/CSSCanvasValue.cpp: Added.
312 (WebCore::CSSCanvasValue::~CSSCanvasValue):
313 (WebCore::CSSCanvasValue::cssText):
314 (WebCore::CSSCanvasValue::canvasChanged):
315 (WebCore::CSSCanvasValue::canvasResized):
316 (WebCore::CSSCanvasValue::fixedSize):
317 (WebCore::CSSCanvasValue::element):
318 (WebCore::CSSCanvasValue::image):
319 * css/CSSCanvasValue.h: Added.
320 (WebCore::CSSCanvasValue::CSSCanvasValue):
321 (WebCore::CSSCanvasValue::isFixedSize):
322 (WebCore::CSSCanvasValue::setName):
323 * css/CSSGradientValue.cpp:
324 * css/CSSGradientValue.h:
325 * css/CSSImageGeneratorValue.cpp:
326 (WebCore::CSSImageGeneratorValue::generatedImage):
327 * css/CSSImageGeneratorValue.h:
328 (WebCore::CSSImageGeneratorValue::isFixedSize):
329 (WebCore::CSSImageGeneratorValue::fixedSize):
331 (WebCore::CSSParser::parseContent):
332 (WebCore::CSSParser::parseBackgroundImage):
333 (WebCore::CSSParser::parseBorderImage):
334 (WebCore::CSSParser::parseCanvas):
337 (WebCore::Document::getCSSCanvasContext):
338 (WebCore::Document::getCSSCanvasElement):
341 * html/HTMLCanvasElement.cpp:
342 (WebCore::HTMLCanvasElement::HTMLCanvasElement):
343 (WebCore::HTMLCanvasElement::reset):
344 * html/HTMLCanvasElement.h:
345 (WebCore::HTMLCanvasElement::setSize):
346 * rendering/RenderBox.cpp:
347 (WebCore::RenderBox::calculateBackgroundSize):
348 (WebCore::RenderBox::imageChanged):
349 * rendering/RenderBox.h:
350 * rendering/RenderImage.cpp:
351 (WebCore::RenderImage::imageChanged):
352 * rendering/RenderImage.h:
353 (WebCore::RenderImage::imagePtr):
354 (WebCore::RenderImage::intrinsicSizeChanged):
355 * rendering/RenderImageGeneratedContent.h:
356 (WebCore::RenderImageGeneratedContent::imageSize):
357 (WebCore::RenderImageGeneratedContent::imagePtr):
358 * rendering/RenderListMarker.cpp:
359 (WebCore::RenderListMarker::layout):
360 (WebCore::RenderListMarker::imageChanged):
361 (WebCore::RenderListMarker::calcPrefWidths):
362 (WebCore::RenderListMarker::getRelativeMarkerRect):
363 * rendering/RenderListMarker.h:
364 * rendering/RenderObject.cpp:
365 (WebCore::RenderObject::paintBorderImage):
366 (WebCore::RenderObject::imageChanged):
367 * rendering/RenderObject.h:
368 (WebCore::RenderObject::imageChanged):
369 * rendering/RenderSVGImage.cpp:
370 (WebCore::RenderSVGImage::imageChanged):
371 * rendering/RenderSVGImage.h:
372 * rendering/RenderStyle.cpp:
373 (WebCore::StyleCachedImage::imageSize):
374 (WebCore::StyleGeneratedImage::imageSize):
375 * rendering/RenderStyle.h:
376 (WebCore::StyleCachedImage::data):
377 (WebCore::StyleGeneratedImage::StyleGeneratedImage):
378 (WebCore::StyleGeneratedImage::data):
379 (WebCore::StyleGeneratedImage::imageHasRelativeWidth):
380 (WebCore::StyleGeneratedImage::imageHasRelativeHeight):
381 (WebCore::StyleGeneratedImage::usesImageContainerSize):
382 * rendering/RenderTableCol.cpp:
383 (WebCore::RenderTableCol::imageChanged):
384 * rendering/RenderTableCol.h:
385 * rendering/RenderTableRow.cpp:
386 (WebCore::RenderTableRow::imageChanged):
387 * rendering/RenderTableRow.h:
388 * rendering/RenderTableSection.cpp:
389 (WebCore::RenderTableSection::imageChanged):
390 * rendering/RenderTableSection.h:
392 2008-04-16 Anders Carlsson <andersca@apple.com>
398 * loader/appcache/ManifestParser.cpp:
400 (WebCore::parseManifest):
401 * loader/appcache/ManifestParser.h:
402 * platform/text/CharacterNames.h:
404 2008-04-16 Darin Adler <darin@apple.com>
408 - fix <rdar://problem/5858617> REGRESSION (r21452-Safari 3.1):
409 Safari does not find words containing ß (German letter sharp-s)
411 Test: fast/text/find-case-folding.html
413 * platform/text/StringImpl.cpp:
414 (WebCore::StringImpl::foldCase):
415 Pass the folded length to foldCase rather than the original string length.
416 Without this, we get an error code every time.
418 2008-04-16 Anders Carlsson <andersca@apple.com>
422 * loader/appcache/ApplicationCache.cpp:
423 (WebCore::ApplicationCache::ApplicationCache):
424 (WebCore::ApplicationCache::setManifestResource):
425 (WebCore::ApplicationCache::addResource):
427 2008-04-16 Anders Carlsson <andersca@apple.com>
431 Add new protocolHostAndPortAreEqual function.
434 (WebCore::KURL::host):
435 (WebCore::KURL::setHost):
436 (WebCore::KURL::setHostAndPort):
437 (WebCore::protocolHostAndPortAreEqual):
439 (WebCore::KURL::hostStart):
441 2008-04-16 Anders Carlsson <andersca@apple.com>
447 * loader/appcache/ApplicationCache.cpp:
448 (WebCore::ApplicationCache::ApplicationCache):
449 (WebCore::ApplicationCache::setManifestResource):
450 (WebCore::ApplicationCache::addResource):
451 (WebCore::ApplicationCache::removeResource):
452 (WebCore::ApplicationCache::dump):
453 * loader/appcache/ApplicationCacheGroup.h:
455 2008-04-16 Anders Carlsson <andersca@apple.com>
457 Reviewed by Brady and Sam.
459 Add ApplicationCache implementation. Stub out ApplicationCacheGroup methods
460 needed by ApplicationCache.
462 * loader/appcache/ApplicationCache.cpp:
463 (WebCore::ApplicationCache::ApplicationCache):
464 (WebCore::ApplicationCache::~ApplicationCache):
465 (WebCore::ApplicationCache::setManifestResource):
466 (WebCore::ApplicationCache::addResource):
467 (WebCore::ApplicationCache::removeResource):
468 (WebCore::ApplicationCache::resourceForURL):
469 (WebCore::ApplicationCache::resourceForRequest):
470 (WebCore::ApplicationCache::numDynamicEntries):
471 (WebCore::ApplicationCache::dynamicEntry):
472 (WebCore::ApplicationCache::addDynamicEntry):
473 (WebCore::ApplicationCache::removeDynamicEntry):
474 (WebCore::ApplicationCache::setOnlineWhitelist):
475 (WebCore::ApplicationCache::isURLInOnlineWhitelist):
476 (WebCore::ApplicationCache::dump):
477 * loader/appcache/ApplicationCache.h:
478 (WebCore::ApplicationCache::create):
479 (WebCore::ApplicationCache::manifestResource):
480 (WebCore::ApplicationCache::group):
481 (WebCore::ApplicationCache::begin):
482 (WebCore::ApplicationCache::end):
483 * loader/appcache/ApplicationCacheGroup.h:
484 (WebCore::ApplicationCacheGroup::manifestURL):
485 (WebCore::ApplicationCacheGroup::cacheDestroyed):
487 2008-04-16 Adam Roben <aroben@apple.com>
489 Fix Bug 18505: REGRESSION: Search is disabled and not functional
491 <https://bugs.webkit.org/show_bug.cgi?id=18505>
493 Reviewed by Tim Hatcher.
495 * page/inspector/ResourcesPanel.js:
496 (WebInspector.ResourcesPanel.sourceFrameForResource): Added.
497 * page/inspector/inspector.css: Added back rules for the search field
498 that were removed in r31736.
499 * page/inspector/inspector.html:
500 - Removed the disabled attribute from the search field
501 - Added back the #searchResults and #searchResultsResizer divs which
502 were removed in r31736
503 * page/inspector/inspector.js:
504 (WebInspector.set showingSearchResults): Updated for class rename
505 panels -> main-panels.
506 (WebInspector.loaded): Added back the mousedown event listener for the
507 search results resizer that was removed in r31736.
508 (WebInspector.searchResultsResizerDrag): Updated for class rename
509 panels -> main-panels.
510 (WebInspector.performSearch):
511 - Changed to use sourceFrameForResource
512 - Changed to use showResource
513 - Changed to save/restore the focused element around the setting of
515 - Changed to get the source document from the match range instead of
516 by crawling back up to the source view
517 - Changed to bind the onselect handlers to this so that we can
518 access the Elements/Resources panels
520 2008-04-16 Brady Eidson <beidson@apple.com>
522 Reviewed by Sam Weinig
524 Changing ThreadSafeShared to start with a ref count of 1, so updating all users to
525 adoptRef() that initial reference.
527 * bindings/js/JSCustomSQLStatementCallback.h:
528 (WebCore::JSCustomSQLStatementCallback::create):
529 * bindings/js/JSCustomSQLStatementErrorCallback.h:
530 (WebCore::JSCustomSQLStatementErrorCallback::create):
531 * bindings/js/JSCustomSQLTransactionCallback.h:
532 (WebCore::JSCustomSQLTransactionCallback::create):
533 * bindings/js/JSCustomSQLTransactionErrorCallback.h:
534 (WebCore::JSCustomSQLTransactionErrorCallback::create):
536 * bindings/js/JSDatabaseCustom.cpp:
537 (WebCore::JSDatabase::changeVersion):
538 (WebCore::JSDatabase::transaction):
540 * bindings/js/JSSQLTransactionCustom.cpp:
541 (WebCore::JSSQLTransaction::executeSql):
544 (WebCore::Document::databaseThread):
546 * platform/SecurityOrigin.cpp:
547 (WebCore::SecurityOrigin::create):
549 * platform/sql/SQLiteAuthorizer.h:
550 (WebCore::SQLiteAuthorizer::create):
551 (WebCore::SQLiteAuthorizer::SQLiteAuthorizer):
553 * storage/ChangeVersionWrapper.cpp:
554 (WebCore::ChangeVersionWrapper::performPreflight):
555 (WebCore::ChangeVersionWrapper::performPostflight):
556 * storage/ChangeVersionWrapper.h:
557 (WebCore::ChangeVersionWrapper::create):
559 * storage/Database.cpp:
560 (WebCore::Database::openAndVerifyVersion):
561 (WebCore::Database::markAsDeletedAndClose):
562 (WebCore::Database::changeVersion):
563 (WebCore::Database::transaction):
564 (WebCore::Database::scheduleTransaction):
565 (WebCore::Database::scheduleTransactionStep):
566 (WebCore::Database::tableNames):
568 * storage/DatabaseAuthorizer.h:
569 (WebCore::DatabaseAuthorizer::create):
571 * storage/DatabaseTask.h:
572 (WebCore::DatabaseOpenTask::create):
573 (WebCore::DatabaseCloseTask::create):
574 (WebCore::DatabaseTransactionTask::create):
575 (WebCore::DatabaseTableNamesTask::create):
577 * storage/DatabaseThread.cpp:
578 (WebCore::DatabaseThread::scheduleTask): Change to take a PassRefPtr instead of raw
579 (WebCore::DatabaseThread::scheduleImmediateTask): Ditto
580 * storage/DatabaseThread.h:
581 (WebCore::DatabaseThread::create):
583 * storage/SQLError.h:
584 (WebCore::SQLError::create):
585 (WebCore::SQLError::SQLError):
587 * storage/SQLResultSet.h:
588 (WebCore::SQLResultSet::create):
590 * storage/SQLStatement.cpp:
591 (WebCore::SQLStatement::create):
592 (WebCore::SQLStatement::execute):
593 (WebCore::SQLStatement::setDatabaseDeletedError):
594 (WebCore::SQLStatement::setVersionMismatchedError):
595 (WebCore::SQLStatement::setFailureDueToQuota):
596 * storage/SQLStatement.h:
598 * storage/SQLTransaction.cpp:
599 (WebCore::SQLTransaction::create):
600 (WebCore::SQLTransaction::executeSQL):
601 (WebCore::SQLTransaction::openTransactionAndPreflight):
602 (WebCore::SQLTransaction::deliverTransactionCallback):
603 (WebCore::SQLTransaction::handleCurrentStatementError):
604 (WebCore::SQLTransaction::deliverStatementCallback):
605 (WebCore::SQLTransaction::postflightAndCommit):
606 * storage/SQLTransaction.h:
608 2008-04-16 Anders Carlsson <andersca@apple.com>
610 Reviewed by Adam and Brady.
612 Add implementation of ApplicationCacheResource.
614 * loader/appcache/ApplicationCacheResource.cpp:
615 (WebCore::ApplicationCacheResource::ApplicationCacheResource):
616 (WebCore::ApplicationCacheResource::dumpType):
617 * loader/appcache/ApplicationCacheResource.h:
618 (WebCore::ApplicationCacheResource::):
619 (WebCore::ApplicationCacheResource::create):
620 (WebCore::ApplicationCacheResource::type):
621 (WebCore::ApplicationCacheResource::addType):
623 2008-04-16 Timothy Hatcher <timothy@apple.com>
625 Fixes an issue where the source for a resource that had errors would
626 not be shown because the view was created before the resource load
627 finished. The right view is now created, even if the resource isn't
628 finished. The SourceView just makes sure to not load the source until
629 the resource is finished. Only if the category changes, does the view
630 need to be recreated.
632 Reviewed by Adam Roben.
634 * page/inspector/Resource.js:
635 (WebInspector.Resource.prototype.set category): Call recreateViewForResourceIfNeeded.
636 * page/inspector/ResourcesPanel.js:
637 (WebInspector.ResourcesPanel.prototype.recreateViewForResourceIfNeeded):
638 Added. Tries to make a new view, if the view is the same prototype of the
639 previous view, return early. If they differ, close and detach the old view
640 and associate the resource with the new view. Calling updateErrorsAndWarnings
641 is needed, because the errors and warnings that might have been added to the
642 previous view will be lost, so make the tree element match.
643 (WebInspector.Resource.prototype._createResourceView): Always create a view
644 that matches the resource category. Ignore the loading and failed status.
645 * page/inspector/SourceView.js:
646 (WebInspector.SourceView.prototype.setupSourceFrameIfNeeded): Don't setup the
647 frame if the resource hasn't finished or if the load failed.
649 2008-04-16 Timothy Hatcher <timothy@apple.com>
651 Adds a console formatter for Error objects. So typing a expression in the
652 console that ends in an exception will print meaningful info. Also calling
653 console.{log,error,warn,info} with an error object will output nicely.
655 Reviewed by Adam Roben.
657 * page/inspector/Console.js:
658 (WebInspector.Console.prototype._formaterror): Added. Formats an error
659 object by showing it like other exceptions, with a clickable file URL.
661 2008-04-16 Timothy Hatcher <timothy@apple.com>
663 Refactors code that updates the errors and warnings count in the
664 resources sidebar so other functions can easily trigger updates.
666 Reviewed by Adam Roben.
668 * page/inspector/ResourcesPanel.js:
669 (WebInspector.ResourcesPanel.prototype.addMessageToResource): Call updateErrorsAndWarnings.
670 Removes code that updates the bubbleText and class names.
671 (WebInspector.ResourcesPanel.prototype.clearMessages): Ditto.
672 (WebInspector.ResourceSidebarTreeElement.prototype.updateErrorsAndWarnings):
673 Added. Updates the bubbleText and adds or removes the class names
674 depending on if the values are zero.
676 2008-04-16 Antti Koivisto <antti@apple.com>
680 Fix <rdar://problem/5863728>
681 REGRESSION: Garbage character shown in temperatures in the Weather widget (encoding issue with degree symbol)
683 Parse the encoding attribute in PreloadScanner.
685 Test: fast/encoding/script-preload-encoding.html
687 * html/PreloadScanner.cpp:
688 (WebCore::PreloadScanner::processAttribute):
689 (WebCore::PreloadScanner::emitTag):
690 (WebCore::PreloadScanner::emitCSSRule):
691 * html/PreloadScanner.h:
692 * loader/DocLoader.cpp:
693 (WebCore::DocLoader::preload):
694 * loader/DocLoader.h:
696 2008-04-16 Anders Carlsson <andersca@apple.com>
700 Generate the DOMApplicationCache JS wrapper, add JSDOMApplicationCacheCustom.cpp and
701 fix typos in the #if line.
703 * DerivedSources.make:
704 * WebCore.vcproj/WebCore.vcproj:
705 * WebCore.xcodeproj/project.pbxproj:
706 * bindings/js/JSDOMApplicationCacheCustom.cpp: Added.
707 * loader/appcache/ApplicationCache.cpp:
708 * loader/appcache/ApplicationCache.h:
709 * loader/appcache/ApplicationCacheGroup.cpp:
710 * loader/appcache/ApplicationCacheGroup.h:
711 * loader/appcache/ApplicationCacheResource.cpp:
712 * loader/appcache/ApplicationCacheResource.h:
713 * loader/appcache/DOMApplicationCache.cpp:
714 * loader/appcache/DOMApplicationCache.h:
715 * loader/appcache/DOMApplicationCache.idl:
716 * loader/appcache/ManifestParser.cpp:
717 * loader/appcache/ManifestParser.h:
719 2008-04-16 Sam Weinig <sam@webkit.org>
721 Reviewed by Geoffrey Garen.
723 - To keep the behavior of the WebKit and JavaScriptCore API's the same,
724 we need to hide the fact that the global object and the window object
725 are no longer the same thing, and the the global object now changes on
726 navigations. To do this, only the wrapper should ever be exposed. This
727 fixes the two remaining spots where the internal global object is exposed,
728 the windowScriptObject returned from [WebFrame windowObject] and the object
729 return by calling JSContextGetGlobalObject on [WebFrame globalContext]
731 * bindings/js/JSDOMWindowWrapper.cpp:
732 (WebCore::JSDOMWindowWrapper::putWithAttributes):
733 * bindings/js/JSDOMWindowWrapper.h:
734 Forward this new method so that JSObjectSetProperty doesn't set properties on the
737 * page/mac/FrameMac.mm:
738 (WebCore::Frame::windowScriptObject):
739 Return the wrapper instead of the global object.
741 2008-04-16 David Hyatt <hyatt@apple.com>
743 Eliminate the paintBuffer and drawImage(ImageBuffer*) methods from GraphicsContext* in favor of just
744 snagging an Image* from the ImageBuffer and drawing that instead.
746 Enhance canvas with a CanvasObserver so that notifications of dirtying or resizing can be tracked by
751 * html/CanvasRenderingContext2D.cpp:
752 (WebCore::CanvasRenderingContext2D::drawImage):
753 * html/HTMLCanvasElement.cpp:
754 (WebCore::HTMLCanvasElement::HTMLCanvasElement):
755 (WebCore::HTMLCanvasElement::willDraw):
756 (WebCore::HTMLCanvasElement::reset):
757 (WebCore::HTMLCanvasElement::paint):
758 * html/HTMLCanvasElement.h:
759 (WebCore::CanvasObserver::~CanvasObserver):
760 (WebCore::HTMLCanvasElement::setSize):
761 (WebCore::HTMLCanvasElement::setObserver):
762 * platform/graphics/GraphicsContext.cpp:
763 (WebCore::GraphicsContext::drawImage):
764 (WebCore::GraphicsContext::drawTiledImage):
765 * platform/graphics/GraphicsContext.h:
766 * platform/graphics/ImageBuffer.h:
767 (WebCore::ImageBuffer::clearImage):
768 * platform/graphics/cairo/GraphicsContextCairo.cpp:
769 * platform/graphics/cg/GraphicsContextCG.cpp:
770 * platform/graphics/cg/ImageCG.cpp:
771 (WebCore::BitmapImage::draw):
772 (WebCore::Image::drawPattern):
773 * platform/graphics/cg/ImageSourceCG.cpp:
774 (WebCore::ImageSource::createFrameAtIndex):
775 * platform/graphics/qt/GraphicsContextQt.cpp:
776 * platform/graphics/wx/GraphicsContextWx.cpp:
778 2008-04-16 Steve Falkenburg <sfalken@apple.com>
780 Improve timer latency/resolution.
782 The primary timing mechanism is now CreateTimerQueueTimer, with a PostMessage from
783 the callback proc. This event will be delivered sooner than if we used SetTimer(),
784 since it is higher priority than other messages.
786 If there is an input message pending, we'll use we SetTimer() based timers to avoid
789 Don't call PostMessage immediately on all timers < 10ms. Only call immediately if
790 timer is already expired. This avoids the case where no timers would be processed,
791 causing the timer to be re-posted via the slower SetTimer method.
793 Don't call PostMessage immediately if there's a pending WM_PAINT, since
794 we don't want to starve all paints when bombarded with a continuous stream of low
797 Removed reentrancy check, since we're now looking for specific starvation cases,
798 and will typically defer non-expired timers through CreateTimerQueueTimer.
800 The reason Windows wouldn't starve paints in favor of timers with the old code:
801 When we went to reset the timer when it fired, the timer reset code treated this as a
802 reentrant timer, causing us to hit the slow SetTimer code rather than calling PostMessage,
803 even for timers expiring in < 10ms. Â I corrected that, exposing the paint starvation problem.
805 Use timeBeginPeriod/timeEndPeriod to improve resolution of system timers.
806 Limit this resolution change to within 20ms of the last high resolution timer request.
808 Corrected GetQueueStatus to check for specific input (and paint) messages rather than
809 checking QS_ALLINPUT. Contrary to its name, QS_ALLINPUT actually indicates interest
810 in ALL queued messages, not just input messages.
812 Fix SetTimer/KillTimer calls to pass our window handle.
816 * platform/win/SharedTimerWin.cpp:
818 (WebCore::TimerWindowWndProc):
819 (WebCore::queueTimerProc):
820 (WebCore::setSharedTimerFireTime):
821 (WebCore::stopSharedTimer):
823 2008-04-16 Adam Roben <aroben@apple.com>
825 Fix console-log-formatting to truly test formatting an undefined value
827 Exceptions thrown by the test will also now be shown as errors.
829 Reviewed by Tim Hatcher.
831 * manual-tests/inspector/console-log-formatting.html:
832 (test): Use console.error to report exceptions.
833 (runTests): Use window.noSuchVariable instead of just noSuchVariable
834 to avoid an exception.
836 2008-04-16 Anatoli Papirovski <apapirovski@mac.com>
840 Optimized the calculation of background-size.
842 * rendering/RenderBox.cpp:
843 (WebCore::RenderBox::calculateBackgroundSize):
845 2008-04-16 Adam Roben <aroben@apple.com>
847 Fix Bug 17228: console.{log,warn,info,error} should support format
848 strings, variable arguments
850 <https://bugs.webkit.org/show_bug.cgi?id=17228>
851 <rdar://problem/5732828>
853 Reviewed by Tim Hatcher.
855 Test: manual-tests/inspector/console-log-formatting.html
857 * page/inspector/Console.js:
858 (WebInspector.ConsoleMessage): Pass any extra arguments down to
860 (WebInspector.ConsoleMessage._format): This method constructs
861 this.formattedMessage. We treat the first parameter as a format
862 string. Any parameters that have not been used after substituting into
863 the format string are concatenated together, separated by spaces.
864 (WebInspector.ConsoleMessage.toMessageElement): Updated to use
865 this.formattedMessage.
866 (WebInspector.ConsoleMessage.toString): Ditto.
868 2008-04-15 Adam Roben <aroben@apple.com>
870 Make String.format return an array of unused substitutions
872 String.format now returns an object with two properties:
873 formattedResult and unusedSubstitutions.
875 Reviewed by Tim Hatcher.
877 * page/inspector/utilities.js:
878 (String.vsprintf): Updated for changes to String.format. We throw away
879 the array of unused substitutions.
880 (String.format): Changed to keep track of which substitutions are used
881 when formatting. We then return both the formatted result and the
882 array of unused substitutions.
884 2008-04-15 Adam Roben <aroben@apple.com>
886 Generalize String.format some more
888 String.format now takes an initial value and an append function which
889 it uses to build the result. Each time a token is processed,
890 append(valueSoFar, newValue) is called.
892 Reviewed by Tim Hatcher.
894 * page/inspector/utilities.js:
895 (String.vsprintf): Pass the empty string for the initial value, and
896 a function that concatenates two strings as the append function.
897 (String.format): Use initialValue and append to build the result
898 instead of only working with strings.
900 2008-04-15 Adam Roben <aroben@apple.com>
904 String.format is a more generic form of String.vsprintf that takes a
905 set of formatter functions, one for each supported format specifier.
906 Each formatter function is passed the relevant token and substitution
907 value, and returns the formatted result.
909 Reviewed by Tim Hatcher.
911 * page/inspector/utilities.js:
912 (String.standardFormatters): Added.
913 (String.vsprintf): Changed to call through to String.format.
914 (String.format): Added. Most of the code came from String.vsprintf,
915 except that we use the passed-in formatters to format the
916 substitutions rather than hard-coding how to handle each format
919 2008-04-15 Adam Roben <aroben@apple.com>
921 Refactor String.vsprintf to separate tokenizing and substituting
923 This will eventually be useful for the various console methods that
924 take a format string.
926 Reviewed by Tim Hatcher.
928 * page/inspector/utilities.js:
929 (String.tokenizeFormatString): Added. This uses the format parsing
930 code from String.vsprintf but just returns an array of "string" and
932 (String.vsprintf): Now calls String.tokenizeFormatString and processes
933 the tokens one at a time.
935 2008-04-15 Adam Roben <aroben@apple.com>
937 Pass all arguments to console.{log,warn,info,error} into the Inspector's JS
939 Part of Bug 17228: console.{log,warn,info,error} should support format
940 strings, variable arguments
941 <http://bugs.webkit.org/show_bug.cgi?id=17228>
942 <rdar://problem/5732828>
944 We don't use the extra arguments yet.
946 Reviewed by Tim Hatcher.
949 (WebCore::Console::error): Pass the arguments list to
951 (WebCore::Console::info): Ditto.
952 (WebCore::Console::log): Ditto.
953 (WebCore::Console::warn): Ditto.
954 * page/InspectorController.cpp:
955 (WebCore::ConsoleMessage::ConsoleMessage): Added a new constructor
956 that takes an ExecState and a List instead of a String. We wrap and
957 store the JSValues from the List in a Vector<ProtectedPtr<JSValue> >.
958 (WebCore::InspectorController::addMessageToConsole): Added an overload
959 that takes an ExecState and a List.
960 (WebCore::InspectorController::addConsoleMessage): Moved code here
961 from addMessageToConsole. Both overloads of addMessageToConsole now
962 call this helper method.
963 (WebCore::InspectorController::addScriptConsoleMessage): Updated for
964 the new parameter order of WebInspector.ConsoleMessage. If the
965 ConsoleMessage has a non-empty wrappedArguments Vector, we use that
966 instead of the ConsoleMessage's message String.
967 * page/InspectorController.h:
968 * page/inspector/Console.js:
969 (WebInspector.ConsoleMessage): Removed the explicit message parameter.
970 We now get the message from the unnamed 5th parameter.
971 * page/inspector/Resource.js: Updated for the change to
972 WebInspector.ConsoleMessage's parameter order.
974 2008-04-15 Adam Roben <aroben@apple.com>
976 Change calls to Chrome::addMessageToConsole to use Console::addMessage
978 Part of Bug 17228: console.{log,warn,info,error} should support format
979 strings, variable arguments
980 <http://bugs.webkit.org/show_bug.cgi?id=17228>
981 <rdar://problem/5732828>
983 Console now takes care of calling ChromeClient::addMessageToConsole
984 for the appropriate messages (i.e., just messages from JavaScript). If
985 you ever want to add a message to the console, Console is the place to
988 Reviewed by Darin Adler.
990 * WebCore.xcodeproj/project.pbxproj: Mark Console.h Private.
991 * page/Chrome.cpp: Removed addMessageToConsole
992 * page/Chrome.h: Moved MessageSource/MessageLevel to Console.h.
994 (WebCore::Console::addMessage): Added. Calls
995 ChromeClient::addMessageToConsole for JS messages, and calls
996 InspectorController::addMessageToConsole for all messages.
997 (WebCore::Console::error): Changed to call directly to
998 InspectorController in addition to ChromeClient.
999 (WebCore::Console::info): Ditto.
1000 (WebCore::Console::log): Ditto.
1001 (WebCore::Console::warn): Ditto.
1002 * page/Console.h: Added MessageSource/MessageLevel enums from Chrome.h.
1004 2008-04-15 Adam Roben <aroben@apple.com>
1006 Pass JSConsole's arguments unmodified to Console
1008 Part of Bug 17228: console.{log,warn,info,error} should support format
1009 strings, variable arguments
1010 <http://bugs.webkit.org/show_bug.cgi?id=17228>
1011 <rdar://problem/5732828>
1013 All of JSConsole's methods are now custom, so that we can pass the
1014 arguments unmodified to Console. Console now handles calling
1015 toString() on the first argument. Later it will pass the arguments off
1016 to InspectorController.
1018 There should be no behavioral changes caused by this patch.
1020 Reviewed by Darin Adler.
1022 * ForwardingHeaders/kjs/list.h: Added.
1023 * GNUmakefile.am: Added JSConsoleCustom.cpp to the project.
1024 * WebCore.pro: Ditto.
1025 * WebCore.vcproj/WebCore.vcproj: Ditto.
1026 * WebCore.xcodeproj/project.pbxproj: Ditto.
1027 * WebCoreSources.bkl: Ditto.
1028 * bindings/js/JSConsoleCustom.cpp: Added.
1029 (WebCore::JSConsole::error):
1030 (WebCore::JSConsole::info):
1031 (WebCore::JSConsole::log):
1032 (WebCore::JSConsole::warn):
1033 * page/Console.cpp: Changed all methods to take an ExecState* and a
1034 const List&. The first item in the List is toString()ed and passed to
1036 (WebCore::Console::error):
1037 (WebCore::Console::info):
1038 (WebCore::Console::log):
1039 (WebCore::Console::warn):
1043 2008-04-16 Sam Weinig <sam@webkit.org>
1045 Reviewed by Darin Adler.
1047 Rename kjs_strtod to KJS::strtod.
1049 * platform/text/String.cpp:
1050 (WebCore::charactersToDouble):
1052 2008-04-16 Alexey Proskuryakov <ap@webkit.org>
1056 http://bugs.webkit.org/show_bug.cgi?id=18259
1057 XML+XSLT pages in iframe contains document.location of a parent window
1059 Test: fast/xsl/subframe-location.html
1061 * xml/XSLTProcessor.cpp:
1062 (WebCore::XSLTProcessor::createDocumentFromSource): Set resulting document URL before opening
1063 it, so that the document loader picks a correct URL, too.
1065 2008-04-16 Dan Bernstein <mitz@apple.com>
1067 Rubber-stamped by John Sullivan.
1069 - remove unreachable code which was added in r8802
1071 * rendering/RenderText.cpp:
1072 (WebCore::RenderText::caretRect):
1074 2008-04-15 Timothy Hatcher <timothy@apple.com>
1076 Adds a script resource icon. Update the CSS icon to better match the script icon.
1078 https://bugs.webkit.org/show_bug.cgi?id=18499
1080 Rubber-stamped by Adele Peterson.
1082 * page/inspector/Images/resourceCSSIcon.png: Updated.
1083 * page/inspector/Images/resourceJSIcon.png: Added.
1084 * page/inspector/inspector.css: Changed the script icon rule to reference the new image.
1086 2008-04-16 Eric Seidel <eric@webkit.org>
1090 Fix leaky ImageBuffer code.
1092 * platform/graphics/GeneratedImage.cpp:
1093 (WebCore::GeneratedImage::drawPattern):
1094 * platform/graphics/ImageBuffer.h:
1095 * platform/graphics/cg/ImageBufferCG.cpp:
1096 (WebCore::ImageBuffer::image):
1098 2008-04-15 Justin Garcia <justin.garcia@apple.com>
1102 <rdar://problem/5665299> REGRESSION (r27369): Paste text into a contenteditable div creates a contenteditable div for each line (16661)
1104 * editing/markup.cpp:
1105 (WebCore::createFragmentFromText): Don't use clones of the enclosing block to hold
1106 paragraphs if the enclosing block is the root editable element.
1108 2008-04-15 Mark Rowe <mrowe@apple.com>
1110 Reviewed by Jon Honeycutt.
1112 Don't treat the misnamed NSAccessibilitySortButtonRole as an accessibility role. It is really
1113 a subrole of NSAccessibilityButtonRole. As it is not used inside WebCore there is no change in
1114 behaviour as a result of doing this. This fixes <rdar://problem/5866444>.
1116 * page/AccessibilityObject.cpp:
1117 (WebCore::AccessibilityObject::canSetFocusAttribute): Remove SortButtonRole as it is unused.
1118 * page/AccessibilityObject.h: Ditto.
1120 * page/mac/AccessibilityObjectWrapper.mm:
1123 2008-04-15 Anders Carlsson <andersca@apple.com>
1125 Fix leaks seen on bot.
1127 * loader/SubstituteResource.h:
1128 (WebCore::SubstituteResource::~SubstituteResource):
1129 Add a virtual destructor.
1131 2008-04-15 Brady Eidson <beidson@apple.com>
1133 Reviewed by Anders Carlsson
1135 Fix for <rdar://problem/5820819> - Crash sometime occurs when interrupting a load.
1137 Each SubresourceLoader has a client. That client is often a Loader::Host object.
1138 The Loader/Host/CachedResource system predates our ref-counting and ownership models, and therefore manages
1139 object lifetime manually.
1141 The cause of this crash was that we would sometimes call "didFail()" on a Host object twice - Once when
1142 beginning the new navigation, and once when the new navigation is committed.
1144 The problem is after the first time Host::didFail() gets called, the Host is almost always deleted shortly
1145 thereafter. But the SubresourceLoader had a dangling pointer to the Host which is now invalid.
1147 I explored a few options to fix this bug. The one that was most obviously "clean" was to call cancel() on
1148 the SubresourceLoader itself, which would end up calling Host::didFail() and doing the appropriate cache
1151 This problem with that approach was that it had other side effects - when you cut off a load that had already
1152 partially displayed in the WebView, images that hadn't finished loading would be invalidated and immediately
1153 turn into broken image icons. This was visually jarring and pretty unacceptable.
1155 So I decided to follow a much simpler approach, which was to have the Host clear the client pointer from each
1156 SubresourceLoader before it forgets about it. This leaves things the same visually and fixes the crash.
1158 Note that the layout test for this - if possible - will require other enhancements to DRT including possibly
1159 adding support for window.stop(). That task is non-trivial, and is documented in <rdar://problem/5061826>
1161 * loader/SubresourceLoader.h:
1162 (WebCore::SubresourceLoader::clearClient): Add a method to clear the SubresourceLoaderClient. This is
1163 perfectly safe to do on an in-flight SubresourceLoader as they are already designed to be client-less,
1164 and already null-check the client before calling it.
1166 * loader/loader.cpp:
1167 (WebCore::Loader::Host::didFail): The SubresourceLoader itself might not be finished loading and might decide
1168 to call into its client later. Since the client has no guaranteed lifetime and is liable to be deleted
1169 after didFail() is called, call clearClient() on the SubresourceLoader so such an invalid call can't happen.
1171 2008-04-15 Anders Carlsson <andersca@apple.com>
1175 Add empty files for the application cache.
1177 * Configurations/WebCore.xcconfig:
1178 * WebCore.vcproj/WebCore.vcproj:
1179 * WebCore.vcproj/build-generated-files.sh:
1180 Add ENABLE_OFFLINE_WEB_APPLICATIONS to FEATURE_DEFINES.
1182 * WebCore.xcodeproj/project.pbxproj:
1183 * loader/appcache: Added.
1184 * loader/appcache/ApplicationCache.cpp: Added.
1185 * loader/appcache/ApplicationCache.h: Added.
1186 * loader/appcache/ApplicationCacheGroup.cpp: Added.
1187 * loader/appcache/ApplicationCacheGroup.h: Added.
1188 * loader/appcache/ApplicationCacheResource.cpp: Added.
1189 * loader/appcache/ApplicationCacheResource.h: Added.
1190 * loader/appcache/DOMApplicationCache.cpp: Added.
1191 * loader/appcache/DOMApplicationCache.h: Added.
1192 * loader/appcache/DOMApplicationCache.idl: Added.
1193 * loader/appcache/ManifestParser.cpp: Added.
1194 * loader/appcache/ManifestParser.h: Added.
1196 2008-04-15 Kevin McCullough <kmccullough@apple.com>
1200 - <rdar://problem/5792587> AJAX (XMLHttpRequest) support for the Inspector (17776)
1201 - Add XMLHttpRequest support to the inspector.
1203 * English.lproj/InspectorLocalizedStrings.js: Specify capitalization
1204 instead of using text-transform because XHR must capitalize all the letters.
1205 * page/inspector/Resource.js: Assume XHRs are textType even though this
1206 may not always be true.
1207 Also add the XHR category and let all mime types be consistent with it.
1208 * page/inspector/ResourcesPanel.js: Set the XHR category color.
1209 * page/inspector/inspector.css: Make XHRs yellow and fonts red because
1210 XHRs are more common than fonts and yellow next to orange (scripts) is
1211 not as harsh on the eyes as red next to orange.
1212 * page/inspector/inspector.js: Specify capitalization again.
1214 2008-04-15 David Hyatt <hyatt@apple.com>
1216 Fix the zoom property so that it works properly with font-size.
1218 Reviewed by John Sullivan
1220 Added fast/css/zoom-font-size.html
1222 * css/CSSStyleSelector.cpp:
1223 (WebCore::CSSStyleSelector::updateFont):
1224 (WebCore::CSSStyleSelector::applyProperty):
1225 (WebCore::CSSStyleSelector::checkForZoomChange):
1226 * css/CSSStyleSelector.h:
1228 2008-04-15 Timothy Hatcher <timothy@apple.com>
1230 Fixes the bug where a resource view could still be shown after the inspected
1231 page navigates to another page.
1233 https://bugs.webkit.org/show_bug.cgi?id=18517
1235 Reviewed by Adam Roben.
1237 * page/inspector/ResourcesPanel.js:
1238 (WebInspector.ResourcesPanel.prototype.reset): Close the visible resource.
1239 Iterate over all the resources and zero errors and warnings and delete the
1240 resource view and tree element. Removes all children of resourceViews. Passes
1241 true to _updateGraphDividersIfNeeded to force an immediate update.
1242 (WebInspector.ResourcesPanel.prototype.removeResource): Added. Closes
1243 the resource view if it is visible. Removes the resource from the _resources
1244 array. Removes the tree element from the outline tree. Zeros out the errors
1245 and warnings properties. Deletes the tree element and resource view properties.
1246 (WebInspector.ResourcesPanel.prototype.closeVisibleResource): Null check
1247 this._calculator for times when reset is called before the calculator is set.
1248 * page/inspector/inspector.js:
1249 (WebInspector.removeResource): Call ResourcesPanel.removeResource.
1251 2008-04-15 Anders Carlsson <andersca@apple.com>
1255 Rename "archive" to "substitute" in a couple of places.
1257 * loader/DocumentLoader.cpp:
1258 (WebCore::DocumentLoader::DocumentLoader):
1259 (WebCore::DocumentLoader::clearArchiveResources):
1260 (WebCore::DocumentLoader::deliverSubstituteResourcesAfterDelay):
1261 (WebCore::DocumentLoader::substituteResourceDeliveryTimerFired):
1262 (WebCore::DocumentLoader::isSubstituteLoadPending):
1263 (WebCore::DocumentLoader::cancelPendingSubstituteLoad):
1264 (WebCore::DocumentLoader::scheduleArchiveLoad):
1265 (WebCore::DocumentLoader::setDefersLoading):
1266 * loader/DocumentLoader.h:
1267 * loader/ResourceLoader.cpp:
1268 (WebCore::ResourceLoader::load):
1269 (WebCore::ResourceLoader::didCancel):
1271 2008-04-15 Anders Carlsson <andersca@apple.com>
1275 Move the URL, response and data to SubstituteResource.
1277 * loader/SubstituteResource.h:
1278 (WebCore::SubstituteResource::url):
1279 (WebCore::SubstituteResource::response):
1280 (WebCore::SubstituteResource::data):
1281 (WebCore::SubstituteResource::SubstituteResource):
1282 * loader/archive/ArchiveResource.cpp:
1283 (WebCore::ArchiveResource::ArchiveResource):
1284 * loader/archive/ArchiveResource.h:
1285 (WebCore::ArchiveResource::frameName):
1287 2008-04-15 David Hyatt <hyatt@apple.com>
1289 https://bugs.webkit.org/show_bug.cgi?id=18467
1291 Make sure to ignore zoom:0. That is not supposed to actually do anything. It's a hack in IE
1292 to cause an element to set "hasLayout."
1296 Added fast/css/zoom-property-parsing.html
1298 * css/CSSParser.cpp:
1299 (WebCore::CSSParser::parseValue):
1300 * css/CSSStyleSelector.cpp:
1301 (WebCore::CSSStyleSelector::applyProperty):
1303 2008-04-15 Anders Carlsson <andersca@apple.com>
1307 Add a (currently empty) SubstituteResource class and make ArchiveResource inherit from it.
1309 * WebCore.vcproj/WebCore.vcproj:
1310 * WebCore.xcodeproj/project.pbxproj:
1311 * loader/SubstituteResource.h: Added.
1312 * loader/archive/ArchiveResource.h:
1314 2008-04-15 Antti Koivisto <antti@apple.com>
1318 Fix <rdar://problem/5862921>
1319 REGRESSION: Leak in SVGSVGElement::SVGSVGElement
1321 In these strange days RefCounted starts with count of one.
1323 * svg/SVGSVGElement.cpp:
1324 (WebCore::SVGSVGElement::SVGSVGElement):
1325 * svg/animation/SMILTimeContainer.h:
1326 (WebCore::SMILTimeContainer::create):
1328 2008-04-15 Anatoli Papirovski <apapirovski@mac.com>
1332 [CSS1, CSS3] Fixed the background-origin calculation for root elements
1333 (background-size and background-position are affected), r10794
1334 [CSS3] Fixed the background-size transformation where width is specified in percentage and height is left to auto
1336 Test: fast/backgrounds/background-origin-root-element.html
1338 * rendering/RenderBox.cpp:
1339 (WebCore::RenderBox::calculateBackgroundSize):
1340 (WebCore::RenderBox::calculateBackgroundImageGeometry):
1342 2008-04-15 Timothy Hatcher <timothy@apple.com>
1344 Fixes the regression where the error and warning counts did not show up in the Resources
1345 sidebar next to resources.
1347 https://bugs.webkit.org/show_bug.cgi?id=18494
1349 Reviewed by Adam Roben.
1351 * page/inspector/ResourcesPanel.js:
1352 (WebInspector.ResourcesPanel.prototype.addMessageToResource): Increment errors or warnings
1353 on the resource. Set the bubbleText to the total of the errors and warnings. Add a error
1354 or warning class to the bubble.
1355 (WebInspector.ResourcesPanel.prototype.clearMessages): Zero out the errors and warnings
1356 properties on each resource. Set the bubbleText back to an empty string.
1357 * page/inspector/SidebarTreeElement.js:
1358 (WebInspector.SidebarTreeElement): Create a statusElement.
1359 (WebInspector.SidebarTreeElement.prototype.get bubbleText): Return _bubbleText.
1360 (WebInspector.SidebarTreeElement.prototype.set bubbleText): Create bubbleElement if needed.
1361 Assign the value to _bubbleText and bubbleElement.textContent.
1362 (WebInspector.SidebarTreeElement.prototype.onattach): Append statusElement to _listItemNode.
1363 * page/inspector/inspector.css: Style rules for bubbles and status elements.
1365 2008-04-15 Timothy Hatcher <timothy@apple.com>
1367 Fixes the regression where error and warning bubbles would not be added
1368 to the source view of a resource.
1370 https://bugs.webkit.org/show_bug.cgi?id=18495
1372 Reviewed by Adam Roben.
1374 * css/view-source.css:
1375 (.webkit-html-message-bubble): Add a min-height to make sure the border-radius
1376 has enough room to apply.
1377 * page/inspector/Console.js:
1378 (WebInspector.Console.prototype.addMessage): Removed code that added messages
1379 to resource panels and incremented error and warning counts on resources.
1380 Now just call ResourcesPanel.addMessageToResource after assigning the resource
1381 to the console message.
1382 (WebInspector.Console.prototype.clearMessages): Removed code that cleared error
1383 and warning counts from resources an call ResourcesPanel.clearMessages.
1384 * page/inspector/ResourcesPanel.js:
1385 (WebInspector.ResourcesPanel.prototype.addMessageToResource): Call addMessage
1386 on the resource's view, if it is implemented.
1387 (WebInspector.ResourcesPanel.prototype.clearMessages): Call clearMessages
1388 on all the resource views for the ones that implement it.
1389 (WebInspector.ResourcesPanel.prototype.refreshResource): Call _resourceView
1390 to make the resource's view if needed. Use a local view variable.
1391 (WebInspector.ResourcesPanel.prototype._resourceView): Added helper function
1392 to create a resource view if needed.
1393 * page/inspector/SourceView.js:
1394 (WebInspector.SourceView.prototype.setupSourceFrameIfNeeded): Delete the
1395 _frameNeedsSetup property at the beginning to prevent recursion. Get the
1396 length of the messages array when assigning the local length variable.
1397 (WebInspector.SourceView.prototype.addMessage): Renamed from addMessageToSource.
1398 (WebInspector.SourceView.prototype.clearMessages): Added. Clear all the message
1399 bubbles that might be sprinkled in the source. Also clears the messages array.
1400 (WebInspector.SourceView.prototype._addMessageToSource): Create the image
1401 element in the Inspector's document so we can use relative image URLs. Then
1402 adopt the image element into the frame's document.
1404 2008-04-15 Brady Eidson <beidson@apple.com>
1408 Hook up event dispatching for window.localStorage changes.
1410 Tests: storage/domstorage/localstorage/enumerate-storage.html
1411 storage/domstorage/localstorage/iframe-events.html
1412 storage/domstorage/localstorage/index-get-and-set.html
1413 storage/domstorage/localstorage/onstorage-attribute-markup.html
1414 storage/domstorage/localstorage/onstorage-attribute-setattribute.html
1415 storage/domstorage/localstorage/simple-events.html
1416 storage/domstorage/localstorage/simple-usage.html
1417 storage/domstorage/localstorage/window-open.html
1419 * storage/LocalStorage.cpp:
1420 (WebCore::LocalStorage::dispatchStorageEvent): Walk every Page in the PageGroup, adding
1421 each Frame that matches the storage area's security origin to a Vector. Then dispatch
1422 the StorageEvent to each Frame in the Vector
1424 * storage/SessionStorage.cpp:
1425 (WebCore::SessionStorage::dispatchStorageEvent): Adopt the technique used in LocalStorage,
1426 which is to only add the Frames to the Vector if their security origin matches
1428 2008-04-15 Olivier Goffart <ogoffart@trolltech.com>
1432 Fixes: copy to clipboard when selecting, and paste when clicking with the middle button
1434 * platform/Pasteboard.h: Added Qt-specific selection mode
1435 * platform/qt/PasteboardQt.cpp: Choose the clipboard or the selecton
1436 according to the selection mode
1437 (WebCore::Pasteboard::writeSelection):
1438 (WebCore::Pasteboard::plainText):
1439 (WebCore::Pasteboard::documentFragment):
1440 (WebCore::Pasteboard::writeURL):
1441 (WebCore::Pasteboard::clear):
1442 (WebCore::Pasteboard::isSelectionMode):
1444 2008-04-15 Andre Poenitz <andre.poenitz@trolltech.com>
1448 Fix compilation with Qt namespaces
1450 Qt can be configured to have all of its classes inside a specified namespaces.
1451 This is for example used in plugin/component environments like Eclipse.
1453 This change makes it possible to let the Qt port compile against a namespaced
1454 Qt by the use of macros Qt provides to properly forward declare Qt classes in
1458 * bridge/qt/qt_class.h:
1459 * bridge/qt/qt_instance.h:
1460 * html/HTMLCanvasElement.h:
1461 * platform/DragData.h:
1462 * platform/DragImage.h:
1464 * platform/PlatformKeyboardEvent.h:
1465 * platform/PlatformMouseEvent.h:
1466 * platform/PlatformWheelEvent.h:
1467 * platform/Widget.h:
1468 * platform/graphics/Color.h:
1469 * platform/graphics/FloatPoint.h:
1470 * platform/graphics/FloatRect.h:
1471 * platform/graphics/Gradient.h:
1472 * platform/graphics/GraphicsContext.h:
1473 * platform/graphics/ImageBuffer.h:
1474 * platform/graphics/ImageSource.h:
1475 * platform/graphics/IntPoint.h:
1476 * platform/graphics/IntRect.h:
1477 * platform/graphics/IntSize.h:
1478 * platform/graphics/Path.h:
1479 * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp:
1480 * platform/graphics/qt/MediaPlayerPrivatePhonon.h:
1481 * platform/network/qt/QNetworkReplyHandler.h:
1482 * platform/network/qt/ResourceRequest.h:
1483 * platform/qt/ClipboardQt.h:
1484 * platform/qt/RenderThemeQt.h:
1485 * platform/text/PlatformString.h:
1486 * platform/text/qt/TextCodecQt.h:
1487 * svg/graphics/SVGPaintServer.h:
1488 * svg/graphics/SVGPaintServerGradient.h:
1490 2008-04-14 Brady Eidson <beidson@apple.com>
1494 Lay the underpinnings for LocalStorage.
1496 For now, this just exposes window.localStorage to the dom which returns an in-memory Storage object, much
1497 like SessionStorage. The primary difference at this point is that the object returned is shared globally,
1498 and isn't copied for new top-level browsing contexts like SessionStorage.
1500 Later, I'll add proper event dispatch and a persistent storage backing.
1505 * WebCore.vcproj/WebCore.vcproj:
1506 * WebCore.xcodeproj/project.pbxproj:
1507 * WebCoreSources.bkl:
1509 * bindings/js/JSDOMWindowCustom.cpp:
1510 (WebCore::JSDOMWindow::mark): Mark the optionalLocalStorage
1512 * page/DOMWindow.cpp:
1513 (WebCore::DOMWindow::clear):
1514 (WebCore::DOMWindow::localStorage):
1516 (WebCore::DOMWindow::optionalLocalStorage):
1518 * storage/LocalStorage.cpp: Added.
1519 (WebCore::LocalStorage::sharedLocalStorage):
1520 (WebCore::LocalStorage::LocalStorage):
1521 (WebCore::LocalStorage::storageArea):
1522 (WebCore::LocalStorage::itemChanged):
1523 (WebCore::LocalStorage::itemRemoved):
1524 (WebCore::LocalStorage::dispatchStorageEvent):
1525 * storage/LocalStorage.h: Added.
1527 * storage/SessionStorage.cpp: Refactor to use the client interface for event dispatching for sessionStorage objects
1528 (WebCore::SessionStorage::SessionStorage):
1529 (WebCore::SessionStorage::copy):
1530 (WebCore::SessionStorage::storageArea):
1531 (WebCore::SessionStorage::itemChanged):
1532 (WebCore::SessionStorage::itemRemoved):
1533 (WebCore::SessionStorage::dispatchStorageEvent):
1534 * storage/SessionStorage.h:
1536 * storage/StorageArea.cpp: Add a client parameter, and call to the client when an item is changed or removed.
1537 (WebCore::StorageArea::create):
1538 (WebCore::StorageArea::StorageArea):
1539 (WebCore::StorageArea::copy):
1540 (WebCore::StorageArea::setItem):
1541 (WebCore::StorageArea::removeItem):
1542 (WebCore::StorageArea::setClient):
1543 * storage/StorageArea.h:
1544 (WebCore::StorageArea::page):
1545 (WebCore::StorageArea::securityOrigin):
1547 * storage/StorageAreaClient.h: Added. Break out "itemChanged" and "itemRemoved" to a StorageAreaClient
1548 This way, both SessionStorage and LocalStorage areas can have different behavior on changes with
1549 that behavior managed from a central location.
1550 (WebCore::StorageAreaClient::~StorageAreaClient):
1551 (WebCore::StorageAreaClient::StorageAreaClient):
1552 (WebCore::StorageAreaClient::itemChanged):
1553 (WebCore::StorageAreaClient::itemRemoved):
1555 2008-04-14 Brady Eidson <beidson@apple.com>
1559 Add a hidden pref to debug WebArchive loading. With this pref on, when loading a WebArchive,
1560 if the resource isn't in the ArchiveResourceCollection, the loader will not fall back to the
1561 network and will instead fail the load with a "cannot show URL" error.
1563 * loader/ResourceLoader.cpp:
1564 (WebCore::ResourceLoader::load): Do the check here.
1566 * page/Settings.cpp:
1567 (WebCore::Settings::Settings):
1568 (WebCore::Settings::setWebArchiveDebugModeEnabled):
1570 (WebCore::Settings::webArchiveDebugModeEnabled):
1572 2008-04-14 Antti Koivisto <antti@apple.com>
1576 Some preparations for additive animations and animations in <use>.
1577 - Disallow animation elements in instance trees.
1578 - Fix buggy SVGUseElement::removeDisallowedElementsFromSubtree(), make it
1580 - Invoke it from SVGElementInstance::updateInstance() to clean up the instance tree
1582 - Add mechanism for blocking instance updates when an animation changes
1583 the referenced tree.
1585 The added assert in SVGSMILElement::insertedIntoDocument() verifies the fixes
1586 with the existing test cases.
1588 * svg/SVGAElement.cpp:
1589 (WebCore::SVGAElement::defaultEventHandler):
1590 * svg/SVGElementInstance.cpp:
1591 (WebCore::SVGElementInstance::updateInstance):
1592 * svg/SVGStyledElement.cpp:
1593 (WebCore::SVGStyledElement::updateElementInstance):
1594 (WebCore::SVGStyledElement::setInstanceUpdatesBlocked):
1595 * svg/SVGStyledElement.h:
1596 * svg/SVGUseElement.cpp:
1597 (WebCore::isDisallowedElement):
1598 (WebCore::SVGUseElement::removeDisallowedElementsFromSubtree):
1599 * svg/SVGUseElement.h:
1600 * svg/animation/SVGSMILElement.cpp:
1601 (WebCore::SVGSMILElement::insertedIntoDocument):
1602 (WebCore::SVGSMILElement::isSMILElement):
1603 (WebCore::SVGSMILElement::connectConditions):
1604 (WebCore::SVGSMILElement::disconnectConditions):
1605 * svg/animation/SVGSMILElement.h:
1607 2008-04-14 Adam Roben <aroben@apple.com>
1609 Don't let the inspected page overwrite properties of JS objects in the
1612 <https://bugs.webkit.org/show_bug.cgi?id=16011>
1613 <rdar://problem/5604409>
1615 <https://bugs.webkit.org/show_bug.cgi?id=16837>
1616 <rdar://problem/5813850>
1618 Reviewed by Sam Weinig and Geoff Garen.
1620 Tests (contributed by Adam Barth and Collin Jackson):
1621 manual-tests/inspector-wrappers
1625 * WebCore.vcproj/WebCore.vcproj:
1626 * WebCore.xcodeproj/project.pbxproj:
1627 * WebCoreSources.bkl:
1628 Added new files to the projects.
1630 * bindings/js/JSQuarantinedObjectWrapper.cpp: Added.
1632 (WebCore::JSQuarantinedObjectWrapper::asWrapper): Converts a JSValue
1633 into a JSQuarantinedObjectWrapper, if the JSValue is in fact a
1634 JSQuarantinedObjectWrapper.
1635 (WebCore::JSQuarantinedObjectWrapper::cachedValueGetter): Callback to
1636 be used with PropertySlot.
1637 (WebCore::JSQuarantinedObjectWrapper::JSQuarantinedObjectWrapper):
1638 Hold onto the object we're wrapping and its global object. Pass the
1639 wrapped prototype up to the JSObject constructor.
1640 (WebCore::JSQuarantinedObjectWrapper::~JSQuarantinedObjectWrapper):
1641 (WebCore::JSQuarantinedObjectWrapper::unwrappedExecStateMatches):
1642 Returns true if our underlying object originated from the same global
1643 object as the passed-in ExecState.
1644 (WebCore::JSQuarantinedObjectWrapper::unwrappedExecState):
1645 (WebCore::JSQuarantinedObjectWrapper::transferExceptionToExecState):
1646 Wraps and moves an exception from our underlying ExecState to the
1648 (WebCore::JSQuarantinedObjectWrapper::mark): Marks ourselves and the
1649 objects we're holding references to.
1651 (WebCore::JSQuarantinedObjectWrapper::getOwnPropertySlot):
1652 (WebCore::JSQuarantinedObjectWrapper::put):
1653 (WebCore::JSQuarantinedObjectWrapper::deleteProperty):
1654 (WebCore::JSQuarantinedObjectWrapper::implementsConstruct):
1655 (WebCore::JSQuarantinedObjectWrapper::construct):
1656 (WebCore::JSQuarantinedObjectWrapper::implementsHasInstance):
1657 (WebCore::JSQuarantinedObjectWrapper::hasInstance):
1658 (WebCore::JSQuarantinedObjectWrapper::implementsCall):
1659 (WebCore::JSQuarantinedObjectWrapper::callAsFunction):
1660 (WebCore::JSQuarantinedObjectWrapper::getPropertyNames):
1661 JSObject overrides. These each check the appropriate permission before
1662 allowing the call to proceed. We wrap all outgoing values using
1663 m_wrapOutgoingValue, and we prepare all incoming values with the
1664 virtual prepareIncomingValue function. If an exception is raised when
1665 calling the underlying object, we transfer the exception in wrapped
1666 form to the passed-in ExecState.
1668 * bindings/js/JSQuarantinedObjectWrapper.h: Added.
1669 (WebCore::JSQuarantinedObjectWrapper::unwrappedObject):
1670 (WebCore::JSQuarantinedObjectWrapper::className): We return the
1671 underlying object's class name so that we can successfully masquerade
1672 as that underlying object when, e.g., Object.prototype.toString is
1674 (WebCore::JSQuarantinedObjectWrapper::classInfo):
1676 (WebCore::JSQuarantinedObjectWrapper::allowsGetProperty):
1677 (WebCore::JSQuarantinedObjectWrapper::allowsSetProperty):
1678 (WebCore::JSQuarantinedObjectWrapper::allowsDeleteProperty):
1679 (WebCore::JSQuarantinedObjectWrapper::allowsConstruct):
1680 (WebCore::JSQuarantinedObjectWrapper::allowsHasInstance):
1681 (WebCore::JSQuarantinedObjectWrapper::allowsCallAsFunction):
1682 (WebCore::JSQuarantinedObjectWrapper::allowsGetPropertyNames):
1683 These virtual methods let subclasses define the allowed operations on
1684 the wrapped object. By default all operations are disabled.
1686 * bindings/js/JSInspectedObjectWrapper.cpp: Added. This subclass of
1687 JSQuarantinedObjectWrapper is used to wrap objects from the inspected
1688 page being passed to the Inspector.
1689 (WebCore::wrappers):
1691 (WebCore::JSInspectedObjectWrapper::wrap): Wraps the passed-in object
1692 if needed and returns the wrapper. If this object has been wrapped
1693 previously we'll return the old wrapper rather than make a new one.
1694 (WebCore::JSInspectedObjectWrapper::JSInspectedObjectWrapper): Add
1695 ourselves to the wrapper map.
1696 (WebCore::JSInspectedObjectWrapper::~JSInspectedObjectWrapper): Remove
1697 ourselves from the wrapper map.
1698 (WebCore::JSInspectedObjectWrapper::prepareIncomingValue): Ensure that
1699 any objects passed to the inspected object are either wrappers around
1700 objects from the inspected page (in which case we unwrap them so that
1701 the inspected page never sees the wrapper), or wrapped callbacks from
1703 * bindings/js/JSInspectedObjectWrapper.h: Added.
1704 (WebCore::JSInspectedObjectWrapper::classInfo):
1705 (WebCore::JSInspectedObjectWrapper::allowsGetProperty):
1706 (WebCore::JSInspectedObjectWrapper::allowsSetProperty):
1707 (WebCore::JSInspectedObjectWrapper::allowsDeleteProperty):
1708 (WebCore::JSInspectedObjectWrapper::allowsConstruct):
1709 (WebCore::JSInspectedObjectWrapper::allowsHasInstance):
1710 (WebCore::JSInspectedObjectWrapper::allowsCallAsFunction):
1711 (WebCore::JSInspectedObjectWrapper::allowsGetPropertyNames):
1712 These all return true so that the Inspector can use objects from the
1713 inspected page however it needs.
1714 (WebCore::JSInspectedObjectWrapper::wrapOutgoingValue): Wrap all
1715 outgoing values as JSInspectedObjectWrappers.
1717 * bindings/js/JSInspectorCallbackWrapper.cpp: Added. This subclass of
1718 JSQuarantinedObjectWrapper is used to wrap callbacks that the
1719 Inspector passes to the inspected page (e.g., for event listeners or
1720 client-side storage callbacks).
1721 (WebCore::wrappers):
1723 (WebCore::JSInspectorCallbackWrapper::wrap): Wraps the passed-in
1724 object if needed and returns the wrapper. If this object has been
1725 wrapped previously we'll return the old wrapper rather than make a new
1727 (WebCore::JSInspectorCallbackWrapper::JSInspectorCallbackWrapper): Add
1728 ourselves to the wrapper map.
1729 (WebCore::JSInspectorCallbackWrapper::~JSInspectorCallbackWrapper):
1730 Remove ourselves from the wrapper map.
1731 (WebCore::JSInspectorCallbackWrapper::prepareIncomingValue): Ensure
1732 that values passed from the inspected page to an Inspector callback
1733 are wrapped in JSInspectedObjectWrappers. We also allow the inspected
1734 page to pass ourselves in (which will happen in the case of a
1735 client-side storage callback, where the callback itself is passed as
1736 the `this` object). In this case we unwrap ourselves so that the
1737 Inspector doesn't have to deal with the wrapper.
1738 * bindings/js/JSInspectorCallbackWrapper.h: Added.
1739 (WebCore::JSInspectorCallbackWrapper::classInfo):
1740 (WebCore::JSInspectorCallbackWrapper::allowsCallAsFunction):
1741 This is the only allowed operation on a JSInspectorCallbackWrapper.
1742 (WebCore::JSInspectorCallbackWrapper::wrapOutgoingValue): Wrap all
1743 outgoing values as JSInspectorCallbackWrappers.
1745 * page/InspectorController.cpp:
1746 (WebCore::getResourceDocumentNode): Wrap the Document before passing
1747 it to the Inspector.
1748 (WebCore::highlightDOMNode): Unwrap the Node that the Inspector passed
1750 (WebCore::databaseTableNames): Unwrap the Database that the Inspector
1752 (WebCore::inspectedWindow): Wrap the Window before passing it to the
1754 (WebCore::InspectorController::focusNode): Wrap the Node before
1755 passing it to the Inspector.
1756 (WebCore::wrapCallback): Wraps the passed-in callback in a
1757 JSInspectorCallbackWrapper.
1758 (WebCore::InspectorController::addDatabaseScriptResource): Wrap the
1759 Database beore pasing it to the Inspector.
1760 (WebCore::InspectorController::windowScriptObjectAvailable): Add the
1761 new wrapCallback function to the InspectorController JS object.
1763 * page/inspector/ElementsPanel.js:
1764 (WebInspector.ElementsPanel.reset): Wrap the contentLoaded callback.
1766 * page/inspector/DatabaseQueryView.js:
1767 (WebInspector.DatabaseQueryView._enterKeyPressed):
1768 * page/inspector/DatabaseTableView.js:
1769 (WebInspector.DatabaseTableView.update):
1770 Pass null instead of an empty array to executeSql since we're no
1771 longer allowed to pass any unwrapped objects to the inspected page.
1772 We now wrap all callbacks being passed to the inspected page using
1773 InspectorController.wrapCallback.
1775 2008-04-14 Adam Roben <aroben@apple.com>
1777 Use prototypes/constructors from the inspected page when operating on
1778 objects from the inspected page
1780 Reviewed by Tim Hatcher.
1782 * page/inspector/Console.js:
1783 (WebInspector.ConsolePanel._format): Use the Node constructor from the
1784 inspected Window with the instanceof operator.
1785 * page/inspector/ElementsPanel.js:
1786 (WebInspector.DOMNodeTreeElement._attributeEditingCommitted): Use the
1787 Element prototype from the inspected Window instead of the Element
1788 prototype from this Window.
1789 * page/inspector/inspector.js:
1790 (WebInspector.performSearch): Ditto for Document prototype.
1791 * page/inspector/utilities.js:
1792 (Object.type): Now takes an optional Window parameter that is used to
1793 find the built-in constructors.
1795 2008-04-14 Adam Roben <aroben@apple.com>
1797 Don't store objects from the Inspector on CSSStyleRules from the
1800 Reviewed by Tim Hatcher.
1802 * page/inspector/StylesSidebarPane.js:
1803 (WebInspector.StylesSidebarPane.update): Don't store raw CSSStyleRules
1804 from the inspected page in the styleRules array. Instead, always use a
1805 wrapper object. This will keep us from setting Inspector objects as
1806 properties of inspected objects.
1808 2008-04-14 Timothy Hatcher <timothy@apple.com>
1810 Fixes a regression where clicking a resource URL in the Console would not
1811 show the resource in the Resources panel.
1813 https://bugs.webkit.org/show_bug.cgi?id=18493
1815 Reviewed by Adam Roben.
1817 * page/inspector/Console.js:
1818 (WebInspector.Console.prototype._messagesClicked): Removed console-message-url
1819 handling to show resources. This is now handled by WebInspector.showResourceForURL.
1820 (WebInspector.ConsoleMessage.prototype.toMessageElement): Add the webkit-html-resource-link
1821 class name to the URL anchor. Also add the line number as a property to the anchor.
1822 * page/inspector/ResourcesPanel.js:
1823 (WebInspector.ResourcesPanel): Add a reference to the tree element to each calculator.
1824 (WebInspector.ResourcesPanel.prototype.showResource): Select and reveal the resource in
1825 the sidebar. Call showLine on the resource view if it is implemented.
1826 (WebInspector.ResourcesPanel.prototype.closeVisibleResource): Select the current calculator's
1827 tree element in the sidebar.
1828 (WebInspector.ResourcesPanel.prototype._graphSelected): Call closeVisibleResource after
1829 the calculator changes since closeVisibleResource uses the calculator.
1830 * page/inspector/SourceView.js:
1831 (WebInspector.SourceView.prototype.sourceRow): Early return if the line is null/zero.
1832 (WebInspector.SourceView.prototype.showLine): Renamed from showSourceLine.
1833 * page/inspector/inspector.css:
1834 (body.console-visible #main-panels): Made the bottom 24px to match
1835 the height of #main-status-bar.
1836 (.console-message-url): Make the color important so it wins over
1837 the .webkit-html-resource-link rule.
1838 (.resource-view .resource-view-content): Made more generic from .image
1839 so all resource views get sized correctly.
1840 (.resource-view.image .resource-view-content): Removed.
1841 * page/inspector/inspector.js:
1842 (WebInspector.documentClick): Pass the line number from the anchor to
1843 WebInspector.showResourceForURL.
1844 (WebInspector.showResourceForURL): Add line number support. Pass the line
1845 to ResourcesPanel.showResource.
1846 (WebInspector.addMainEventListeners): Use bind for the event listeners.
1848 2008-04-14 Xan Lopez <xan@gnome.org>
1850 Reviewed by Alp Toker.
1852 http://bugs.webkit.org/show_bug.cgi?id=17917
1853 Bug 17917: Cookie support for HTTP soup backend
1855 Initial implementation of cookies for the http soup backend.
1857 Moved CookieJarGtk to CookieJarSoup in network/soup and left the original
1858 one as CookieJarCurl in network/curl.
1861 * platform/CookieJar.h:
1862 * platform/network/curl/CookieJarCurl.cpp: Renamed from WebCore/platform/gtk/CookieJarGtk.cpp.
1863 (WebCore::setCookies):
1865 * platform/network/soup/CookieJarSoup.cpp: Added.
1866 (WebCore::getCookieJar):
1867 (WebCore::setCookies):
1869 * platform/network/soup/ResourceHandleSoup.cpp:
1870 (WebCore::ResourceHandle::start):
1872 2008-04-14 Holger Freyther <zecke@selfish.org>
1874 Reviewed by Alp Toker.
1876 https://bugs.webkit.org/show_bug.cgi?id=18411
1877 Enable Page caching and create FrameViews on the fly
1879 Create the FrameView on the fly and cache pages
1881 - Keep a copy of the GtkAdjustment to be able to reuse it for the
1883 - Do not initially create a FrameView and update the WebKit code to
1884 cope with not having a view.
1885 - Cache seven pages by default.
1887 * platform/gtk/ScrollViewGtk.cpp:
1888 (WebCore::ScrollView::setGtkAdjustments):
1890 2008-04-14 David Hyatt <hyatt@apple.com>
1892 Add a new optimized layout path for positioned objects that move. Also avoid always marking the <html>
1893 object for layout when it has a percentage height, since the RenderView already does that when its size
1898 * rendering/RenderBlock.cpp:
1899 (WebCore::RenderBlock::layoutBlockChildren):
1900 (WebCore::RenderBlock::layoutPositionedObjects):
1901 * rendering/RenderBox.h:
1902 (WebCore::RenderBox::layoutDoingPositionedMovementOnly):
1903 * rendering/RenderObject.cpp:
1904 (WebCore::RenderObject::RenderObject):
1905 (WebCore::RenderObject::setNeedsLayout):
1906 (WebCore::RenderObject::setChildNeedsLayout):
1907 (WebCore::RenderObject::setNeedsPositionedMovementLayout):
1908 (WebCore::RenderObject::setStyle):
1909 * rendering/RenderObject.h:
1910 (WebCore::RenderObject::needsLayout):
1911 (WebCore::RenderObject::needsPositionedMovementLayoutOnly):
1912 (WebCore::RenderObject::layoutDoingPositionedMovementOnly):
1913 * rendering/RenderStyle.cpp:
1914 (WebCore::positionedObjectMoved):
1915 (WebCore::RenderStyle::diff):
1916 * rendering/RenderStyle.h:
1917 (WebCore::RenderStyle::):
1919 2008-04-14 David Hyatt <hyatt@apple.com>
1921 Add support for gradients in the CSS content property.
1925 Added fast/gradients/generated-gradients.html
1929 * WebCore.vcproj/WebCore.vcproj:
1930 * WebCore.xcodeproj/project.pbxproj:
1931 * WebCoreSources.bkl:
1932 * css/CSSParser.cpp:
1933 (WebCore::CSSParser::parseContent):
1934 * css/CSSStyleSelector.cpp:
1935 (WebCore::CSSStyleSelector::applyProperty):
1936 (WebCore::CSSStyleSelector::styleImage):
1937 (WebCore::CSSStyleSelector::mapBackgroundImage):
1938 * css/CSSStyleSelector.h:
1939 * html/HTMLImageElement.cpp:
1940 (WebCore::HTMLImageElement::attach):
1941 * rendering/RenderContainer.cpp:
1942 (WebCore::RenderContainer::updateBeforeAfterContentForContainer):
1943 * rendering/RenderImage.cpp:
1944 (WebCore::RenderImage::RenderImage):
1945 (WebCore::RenderImage::setCachedImage):
1946 (WebCore::RenderImage::paintReplaced):
1947 (WebCore::RenderImage::calcReplacedWidth):
1948 (WebCore::RenderImage::calcReplacedHeight):
1949 (WebCore::RenderImage::calcAspectRatioWidth):
1950 (WebCore::RenderImage::calcAspectRatioHeight):
1951 * rendering/RenderImage.h:
1952 (WebCore::RenderImage::hasImage):
1953 (WebCore::RenderImage::image):
1954 (WebCore::RenderImage::errorOccurred):
1955 (WebCore::RenderImage::usesImageContainerSize):
1956 (WebCore::RenderImage::setImageContainerSize):
1957 (WebCore::RenderImage::imageHasRelativeWidth):
1958 (WebCore::RenderImage::imageHasRelativeHeight):
1959 (WebCore::RenderImage::imageSize):
1960 * rendering/RenderImageGeneratedContent.cpp: Added.
1961 (WebCore::RenderImageGeneratedContent::RenderImageGeneratedContent):
1962 (WebCore::RenderImageGeneratedContent::~RenderImageGeneratedContent):
1963 (WebCore::RenderImageGeneratedContent::setStyleImage):
1964 * rendering/RenderImageGeneratedContent.h: Added.
1965 (WebCore::RenderImageGeneratedContent::hasImage):
1966 (WebCore::RenderImageGeneratedContent::image):
1967 (WebCore::RenderImageGeneratedContent::errorOccurred):
1968 (WebCore::RenderImageGeneratedContent::usesImageContainerSize):
1969 (WebCore::RenderImageGeneratedContent::setImageContainerSize):
1970 (WebCore::RenderImageGeneratedContent::imageHasRelativeWidth):
1971 (WebCore::RenderImageGeneratedContent::imageHasRelativeHeight):
1972 (WebCore::RenderImageGeneratedContent::imageSize):
1973 * rendering/RenderObject.cpp:
1974 (WebCore::RenderObject::createObject):
1975 * rendering/RenderStyle.cpp:
1976 (WebCore::StyleCachedImage::imageHasRelativeWidth):
1977 (WebCore::StyleCachedImage::imageHasRelativeHeight):
1978 (WebCore::StyleCachedImage::usesImageContainerSize):
1979 (WebCore::RenderStyle::contentDataEquivalent):
1980 (WebCore::RenderStyle::setContent):
1981 (WebCore::ContentData::clear):
1982 * rendering/RenderStyle.h:
1983 (WebCore::StyleGeneratedImage::imageHasRelativeWidth):
1984 (WebCore::StyleGeneratedImage::imageHasRelativeHeight):
1985 (WebCore::StyleGeneratedImage::usesImageContainerSize):
1986 (WebCore::BackgroundLayer::setBackgroundImage):
1987 (WebCore::ContentData::):
1988 (WebCore::RenderStyle::setListStyleImage):
1990 2008-04-14 Brady Eidson <beidson@apple.com>
1992 Reviewed by Sam, but Anders too, and he was more thorough in his review
1993 and thats the only reason Sam beat him
1995 Swap the Page and SecurityOrigin arguments when creating a StorageArea.
1997 SecurityOrigin is really the primary identifying characteristic of a StorageArea,
1998 and StorageAreas that represent LocalStorage won't have an owner Page.
2000 * storage/SessionStorage.cpp:
2001 (WebCore::SessionStorage::copy):
2002 (WebCore::SessionStorage::storageArea):
2004 * storage/StorageArea.cpp:
2005 (WebCore::StorageArea::create):
2006 (WebCore::StorageArea::StorageArea):
2007 (WebCore::StorageArea::copy):
2008 (WebCore::StorageArea::dispatchStorageEvent): Null check m_page here, as in the future
2010 * storage/StorageArea.h:
2012 2008-04-14 Timothy Hatcher <timothy@apple.com>
2014 Add support for changing the sort order of the resources. The two sorting
2015 methods supported current are Time and Size.
2017 Reviewed by Adam Roben.
2019 * page/inspector/Images/statusbarMenuButton.png: Added.
2020 * page/inspector/Images/statusbarMenuButtonSelected.png: Added.
2021 * page/inspector/ResourcesPanel.js:
2022 (WebInspector.ResourcesPanel): Create the status bar menu button and
2023 setup the event listener to call _changeSortingFunction. Each option in
2024 the select references a sorting function.
2025 (WebInspector.ResourcesPanel.get statusBarItems): Add the sorting menu to the
2027 (WebInspector.ResourcesPanel._changeSortingFunction): Set the sorting function
2028 to the selected option's function in the sorting menu.
2029 * page/inspector/inspector.css: Added CSS rules for select elements in status bars.
2031 2008-04-14 Timothy Hatcher <timothy@apple.com>
2033 Add support for toggling between small and large resource rows
2034 in the Resources panel.
2036 Reviewed by Adam Roben.
2038 * English.lproj/InspectorLocalizedStrings.js: Added new tooltip string.
2039 * page/inspector/Images/largerResourcesButtons.png: Added.
2040 * page/inspector/Images/resourceDocumentIconSmall.png: Added.
2041 * page/inspector/Images/resourcePlainIconSmall.png: Added.
2042 * page/inspector/ResourcesPanel.js:
2043 (WebInspector.ResourcesPanel): Create the status bar button and
2044 setup the event listener to call _toggleLargerResources.
2045 (WebInspector.ResourcesPanel.get statusBarItems): Return the status bar button.
2046 (WebInspector.ResourcesPanel._toggleLargerResources): Toggle the class names
2047 for the resources children list and the status bar button.
2048 * page/inspector/inspector.css: New style rules for small resources
2049 and the status bar item.
2051 2008-04-14 Chris Fleizach <cfleizach@apple.com>
2053 Reviewed by Darin Adler
2055 <rdar://problem/5854572> REGRESSION: AXPosition seems to be flipped in nightly build
2056 AX was using the wrong method to determine the view to use to create the screen position
2058 * page/AccessibilityObject.cpp:
2059 (WebCore::AccessibilityObject::documentFrameView):
2060 * page/mac/AccessibilityObjectWrapper.mm:
2061 (-[AccessibilityObjectWrapper position]):
2063 2008-04-14 David Smith <catfish.man@gmail.com>
2065 Reviewed by Timothy Hatcher.
2067 - Fix https://bugs.webkit.org/show_bug.cgi?id=14258
2068 Response time vs. download time should be shown in the network profile
2070 * page/inspector/Resource.js: Change the sorting function to sort by response received time.
2071 * page/inspector/ResourcesPanel.js: Hook up the existing infrastructure to two bars instead of one; one for the total time, one for the time post-response.
2072 * page/inspector/inspector.css: Add a new rule to make the waiting bar have a lower opacity, and change the total bar opacity to handle the overlap
2074 2008-04-14 Julien Chaffraix <jchaffraix@webkit.org>
2078 Bug 17403: WebKit Creates Invalid Xhtml Links with Ajax
2079 http://bugs.webkit.org/show_bug.cgi?id=17403
2081 The previous code had callbacks for the normal parsing (full document) and fragment parsing.
2082 The difference was induced by the method we were using which did not accept a xmlParserCtxt.
2083 The code has been refactored to allow us to share the callbacks between the different cases.
2084 A drawback is that we have to use xmlParseContent which is an internal libxml method and thus
2085 some internal intialization is done in WebCore.
2087 Test: fast/parser/ampersand-escaped-parseXMLFragment.xhtml
2089 * dom/XMLTokenizer.cpp:
2090 (WebCore::createStringParser): Moved didInit in the global scope as it is shared by the
2093 (WebCore::createMemoryParser): Create a memory parser similar to the previous code.
2094 Initialize the xmlParserContext to call xmlParseContent in parseXMLDocumentFragment.
2096 (WebCore::XMLTokenizer::initializeParserContext): Check m_parsingFragment to know
2097 which create method to call.
2099 * dom/XMLTokenizer.h: Added parseXMLDocumentFragment as a friend of XMLTokenizer.
2101 2008-04-14 Rob Buis <buis@kde.org>
2105 http://bugs.webkit.org/show_bug.cgi?id=18230
2106 tspan in link not working
2108 Implement SVG Errata: "The 'a' element may contain any
2109 element that its parent may contain, except itself."
2111 * svg/SVGAElement.cpp:
2112 (WebCore::SVGAElement::childShouldCreateRenderer):
2114 2008-04-13 David Hyatt <hyatt@apple.com>
2116 Fix for bug 18466, WebKit exhibits slow performance on Opera DHTML benchmark. Improve layout's rect
2117 invalidation code to only invalidate a single unioned rect once enough individual little rects have
2122 * page/FrameView.cpp:
2123 (WebCore::FrameViewPrivate::reset):
2124 (WebCore::FrameView::layout):
2125 (WebCore::FrameView::repaintRectangle):
2126 (WebCore::FrameView::beginDeferredRepaints):
2127 (WebCore::FrameView::endDeferredRepaints):
2130 2008-04-13 Eric Seidel <eric@webkit.org>
2134 Fix spelling error in function name, no test case.
2136 * svg/SVGTextContentElement.cpp:
2137 (WebCore::SVGInlineTextBoxQueryWalker::chunkPortionCallback):
2139 2008-04-13 Eric Seidel <eric@webkit.org>
2143 Build fix for +SVG_ANIMATION -SVG_FOREIGN_OBJECT build, no tests.
2145 * svg/SVGAnimateMotionElement.cpp:
2146 (WebCore::SVGAnimateMotionElement::hasValidTarget):
2148 2008-04-13 Jan Michael Alonzo <jmalonzo@unpluggable.com>
2150 Reviewed by Oliver Hunt.
2152 http://bugs.webkit.org/show_bug.cgi?id=18239
2153 [Gtk] Build breaks if SVG is enabled but SVG Fonts disabled
2155 * svg/SVGAltGlyphElement.idl: Add SVG_FONTS in Conditional
2157 2008-04-13 Julien Chaffraix <jchaffraix@webkit.org>
2161 More SVG filters build fix.
2163 * svg/graphics/filters/SVGFEImage.cpp:
2164 (WebCore::SVGFEImage::~SVGFEImage):
2165 (WebCore::SVGFEImage::setCachedImage):
2167 2008-04-13 David Hyatt <hyatt@apple.com>
2169 Fix build bustage on the filters SVG code path (not built by default).
2171 * svg/SVGFEImageElement.cpp:
2172 (WebCore::SVGFEImageElement::~SVGFEImageElement):
2173 (WebCore::SVGFEImageElement::parseMappedAttribute):
2175 2008-04-13 Dan Winship <danw@gnome.org>
2177 Reviewed by Alp Toker.
2179 http://bugs.webkit.org/show_bug.cgi?id=18391
2180 return body data incrementally from libsoup backend
2182 Fix libsoup backend to pass data to the loader incrementally
2183 rather than all at once at the end.
2185 * platform/network/soup/ResourceHandleSoup.cpp
2186 (ResourceHandle::start): connect to "got-headers" and "got-chunk"
2187 signals on the message
2188 (gotHeadersCallback): call client->didReceiveResponse() from here
2189 (gotChunkCallback): call client->didReceiveData() from here
2190 (finishedCallback): renamed from dataCallback. mostly just calls
2191 client->didFinishLoading() now.
2193 2008-04-13 Dan Bernstein <mitz@apple.com>
2195 Reviewed by Jessica Kahn.
2197 - remove duplicate condition in canHaveChildrenForEditing()
2199 * editing/htmlediting.cpp:
2200 (WebCore::canHaveChildrenForEditing):
2202 2008-04-13 Dan Bernstein <mitz@apple.com>
2204 Reviewed by Darin Adler.
2206 - fix http://bugs.webkit.org/show_bug.cgi?id=18307
2207 <rdar://problem/5842546> REGRESSION (r31620): Incorrect Hiragino Kaku Gothic, font-weight:500
2209 Test: fast/css/font-weight-1.html
2211 * platform/graphics/mac/FontCacheMac.mm:
2212 (WebCore::toAppKitFontWeight): Adjusted the mapping to cover the AppKit
2213 weight range from 2 to 12, because AppKit weight 1 never occurs. The
2214 new mapping matches font-weight: n00 to ISO weight Wn.
2215 * platform/mac/WebFontCache.mm:
2216 (betterChoice): Changed the midpoint used when deciding between two
2217 candidates that deviate from the desired weight by the same amount.
2219 2008-04-12 David Hyatt <hyatt@apple.com>
2221 Memory management cleanup for the new StyleCachedImage and StyleGeneratedImage classes. Make the back end
2222 values hold refptrs to cached front end values. This will avoid malloc churn as RenderStyles get
2227 * css/CSSCursorImageValue.cpp:
2228 (WebCore::CSSCursorImageValue::updateIfSVGCursorIsUsed):
2229 (WebCore::CSSCursorImageValue::cachedImage):
2230 * css/CSSCursorImageValue.h:
2231 * css/CSSImageGeneratorValue.cpp:
2232 (WebCore::CSSImageGeneratorValue::CSSImageGeneratorValue):
2233 (WebCore::CSSImageGeneratorValue::generatedImage):
2234 * css/CSSImageGeneratorValue.h:
2235 * css/CSSImageValue.cpp:
2236 (WebCore::CSSImageValue::CSSImageValue):
2237 (WebCore::CSSImageValue::~CSSImageValue):
2238 (WebCore::CSSImageValue::cachedImage):
2239 * css/CSSImageValue.h:
2240 * css/CSSStyleSelector.cpp:
2241 (WebCore::CSSStyleSelector::applyProperty):
2242 (WebCore::CSSStyleSelector::createStyleImage):
2243 * css/CSSStyleSelector.h:
2244 * rendering/RenderStyle.h:
2245 (WebCore::StyleCachedImage::cachedImage):
2246 (WebCore::StyleGeneratedImage::StyleGeneratedImage):
2247 (WebCore::StyleGeneratedImage::data):
2249 2008-04-12 Julien Chaffraix <jchaffraix@webkit.org>
2251 Not reviewed, Qt build fix.
2253 * dom/XMLTokenizer.cpp:
2254 (WebCore::XMLTokenizer::parseEndElement):
2255 * platform/graphics/qt/GraphicsContextQt.cpp:
2256 (WebCore::GraphicsContext::clip):
2257 * platform/qt/ClipboardQt.cpp:
2258 (WebCore::ClipboardQt::setDragImage):
2260 2008-04-12 David Hyatt <hyatt@apple.com>
2262 Add support for list-style-image gradients. Also improve the image comparisons between two RenderStyles
2263 to not mistakenly believe that images have changed.
2267 Added fast/gradients/list-item-gradient.html
2269 * css/CSSComputedStyleDeclaration.cpp:
2270 (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2271 * css/CSSParser.cpp:
2272 (WebCore::CSSParser::parseValue):
2273 * css/CSSStyleSelector.cpp:
2274 (WebCore::CSSStyleSelector::applyProperty):
2275 (WebCore::CSSStyleSelector::createStyleImage):
2276 * rendering/RenderListMarker.cpp:
2277 (WebCore::RenderListMarker::RenderListMarker):
2278 (WebCore::RenderListMarker::paint):
2279 (WebCore::RenderListMarker::imageChanged):
2280 (WebCore::RenderListMarker::calcPrefWidths):
2281 * rendering/RenderListMarker.h:
2282 * rendering/RenderStyle.cpp:
2283 (WebCore::imagesEquivalent):
2284 (WebCore::BorderImage::operator==):
2285 (WebCore::StyleCachedImage::errorOccurred):
2286 (WebCore::BackgroundLayer::operator==):
2287 (WebCore::StyleInheritedData::StyleInheritedData):
2288 (WebCore::cursorDataEquivalent):
2289 (WebCore::StyleInheritedData::operator==):
2290 (WebCore::RenderStyle::diff):
2291 * rendering/RenderStyle.h:
2292 (WebCore::StyleImage::errorOccurred):
2293 (WebCore::RenderStyle::listStyleImage):
2294 (WebCore::RenderStyle::setListStyleImage):
2295 (WebCore::RenderStyle::initialListStyleImage):
2297 2008-04-12 Dan Bernstein <mitz@apple.com>
2301 * platform/win/ClipboardWin.cpp:
2302 (WebCore::ClipboardWin::setDragImage):
2304 2008-04-12 Kevin Ollivier <kevino@theolliviers.com>
2306 wx build fix. Update clip to take a FloatRect.
2308 * platform/graphics/wx/GraphicsContextWx.cpp:
2309 (WebCore::GraphicsContext::clip):
2311 2008-04-12 David Hyatt <hyatt@apple.com>
2313 Add gradient support to border-image (even though it's mostly just weird).
2317 Added fast/gradients/border-image-gradient.html
2318 fast/gradients/border-image-gradient-sides-and-corners.html
2320 * css/CSSBorderImageValue.h:
2321 (WebCore::CSSBorderImageValue::imageValue):
2322 * css/CSSStyleSelector.cpp:
2323 (WebCore::CSSStyleSelector::applyProperty):
2324 * platform/graphics/GeneratedImage.cpp:
2325 (WebCore::GeneratedImage::draw):
2326 * rendering/InlineFlowBox.cpp:
2327 (WebCore::InlineFlowBox::paintBoxDecorations):
2328 * rendering/RenderBox.cpp:
2329 (WebCore::RenderBox::imageChanged):
2330 * rendering/RenderObject.cpp:
2331 (WebCore::RenderObject::mustRepaintBackgroundOrBorder):
2332 (WebCore::RenderObject::paintBorderImage):
2333 (WebCore::RenderObject::paintBorder):
2334 (WebCore::RenderObject::updateBackgroundImages):
2335 (WebCore::RenderObject::arenaDelete):
2336 * rendering/RenderStyle.cpp:
2337 (WebCore::StyleCachedImage::isLoaded):
2338 * rendering/RenderStyle.h:
2339 (WebCore::StyleImage::isLoaded):
2340 (WebCore::BorderImage::image):
2342 2008-04-11 Dan Bernstein <mitz@apple.com>
2344 Reviewed by Dave Hyatt.
2346 - fix a regression from r31324 which caused most Arabic text to render
2349 Test: svg/W3C-SVG-1.1/fonts-glyph-02-t.svg
2352 (WebCore::SVGTextRunWalker::walk): Changed to always process characters
2353 in logical order and therefore dispatch the callbacks with a logically-
2354 ordered glyph stream. Changed the call to isCompatibleGlyph() to check
2355 for compatibility only with the range of characters the candidate glyph
2356 is derived from rather than with the entire lookup range. Changed to
2357 mark the <missing-glyph> glyph identifier as valid, to facilitate the
2358 use of invalid glyph identifiers to mark font fallback.
2359 (WebCore::drawTextUsingSVGFontCallback): Changed to only append the
2360 glyph identifier to a vector.
2361 (WebCore::drawTextMissingGlyphCallback): Changed to only append the
2362 character to a vector and append an invalid glyph identifier to the
2364 (WebCore::Font::drawTextUsingSVGFont): Moved the drawing from the
2365 callbacks into this function, iterating over the glyph and fallback
2366 characters vector in visual order.
2368 2008-04-11 Dirk Schulze <vbs85@gmx.de>
2370 Reviewed by eseidel.
2372 Attempt to fix Cairo build.
2374 * platform/graphics/cairo/GraphicsContextCairo.cpp:
2375 * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
2377 2008-04-11 David Hyatt <hyatt@apple.com>
2379 Rename CachedResource's ref/deref methods to addClient/removeClient. This matches the new
2380 StyleImage class and is a more accurate description of what those methods really do.
2385 * css/CSSCursorImageValue.cpp:
2386 (WebCore::CSSCursorImageValue::updateIfSVGCursorIsUsed):
2387 * css/CSSFontFaceSource.cpp:
2388 (WebCore::CSSFontFaceSource::CSSFontFaceSource):
2389 (WebCore::CSSFontFaceSource::~CSSFontFaceSource):
2390 * css/CSSImageValue.cpp:
2391 (WebCore::CSSImageValue::~CSSImageValue):
2392 (WebCore::CSSImageValue::image):
2393 * css/CSSImportRule.cpp:
2394 (WebCore::CSSImportRule::~CSSImportRule):
2395 (WebCore::CSSImportRule::insertedIntoParent):
2396 * dom/ProcessingInstruction.cpp:
2397 (WebCore::ProcessingInstruction::~ProcessingInstruction):
2398 (WebCore::ProcessingInstruction::checkStyleSheet):
2399 (WebCore::ProcessingInstruction::parseStyleSheet):
2400 * dom/XMLTokenizer.cpp:
2401 (WebCore::XMLTokenizer::~XMLTokenizer):
2402 (WebCore::XMLTokenizer::endElementNs):
2403 (WebCore::XMLTokenizer::notifyFinished):
2404 * html/CanvasPattern.cpp:
2405 (WebCore::CanvasPattern::CanvasPattern):
2406 (WebCore::CanvasPattern::~CanvasPattern):
2407 * html/HTMLImageLoader.cpp:
2408 (WebCore::HTMLImageLoader::~HTMLImageLoader):
2409 (WebCore::HTMLImageLoader::setImage):
2410 (WebCore::HTMLImageLoader::updateFromElement):
2411 * html/HTMLLinkElement.cpp:
2412 (WebCore::HTMLLinkElement::~HTMLLinkElement):
2413 (WebCore::HTMLLinkElement::process):
2414 * html/HTMLScriptElement.cpp:
2415 (WebCore::HTMLScriptElement::~HTMLScriptElement):
2416 (WebCore::HTMLScriptElement::parseMappedAttribute):
2417 (WebCore::HTMLScriptElement::insertedIntoDocument):
2418 (WebCore::HTMLScriptElement::removedFromDocument):
2419 (WebCore::HTMLScriptElement::notifyFinished):
2420 * html/HTMLTokenizer.cpp:
2421 (WebCore::HTMLTokenizer::reset):
2422 (WebCore::HTMLTokenizer::scriptHandler):
2423 (WebCore::HTMLTokenizer::notifyFinished):
2424 * loader/CachedCSSStyleSheet.cpp:
2425 (WebCore::CachedCSSStyleSheet::addClient):
2426 * loader/CachedCSSStyleSheet.h:
2427 * loader/CachedFont.cpp:
2428 (WebCore::CachedFont::addClient):
2429 * loader/CachedFont.h:
2430 * loader/CachedImage.cpp:
2431 (WebCore::CachedImage::addClient):
2432 * loader/CachedImage.h:
2433 * loader/CachedResource.cpp:
2434 (WebCore::CachedResource::addClient):
2435 (WebCore::CachedResource::removeClient):
2436 * loader/CachedResource.h:
2437 * loader/CachedScript.cpp:
2438 (WebCore::CachedScript::addClient):
2439 * loader/CachedScript.h:
2440 * loader/CachedXBLDocument.h:
2441 * loader/CachedXSLStyleSheet.cpp:
2442 (WebCore::CachedXSLStyleSheet::addClient):
2443 * loader/CachedXSLStyleSheet.h:
2444 * loader/mac/UserStyleSheetLoader.cpp:
2445 (UserStyleSheetLoader::UserStyleSheetLoader):
2446 (UserStyleSheetLoader::~UserStyleSheetLoader):
2447 * platform/mac/ClipboardMac.mm:
2448 (WebCore::ClipboardMac::setDragImage):
2449 * rendering/RenderImage.cpp:
2450 (WebCore::RenderImage::~RenderImage):
2451 (WebCore::RenderImage::setCachedImage):
2452 * rendering/RenderListMarker.cpp:
2453 (WebCore::RenderListMarker::~RenderListMarker):
2454 (WebCore::RenderListMarker::setStyle):
2455 * rendering/RenderObject.cpp:
2456 (WebCore::RenderObject::updateBackgroundImages):
2457 (WebCore::RenderObject::arenaDelete):
2458 * rendering/RenderStyle.cpp:
2459 (WebCore::StyleCachedImage::addClient):
2460 (WebCore::StyleCachedImage::removeClient):
2461 * svg/SVGImageLoader.cpp:
2462 (WebCore::SVGImageLoader::updateFromElement):
2463 * xml/XSLImportRule.cpp:
2464 (WebCore::XSLImportRule::~XSLImportRule):
2465 (WebCore::XSLImportRule::loadSheet):
2467 2008-04-11 David Hyatt <hyatt@apple.com>
2469 This patch adds support for CSS gradients as background images. RenderStyles now hold a StyleImage
2470 RefPtr, which is a wrapper for two types of images: CachedImages (loaded from URLs) and generated images
2471 (patterns created on the fly such as gradients).
2473 All of the features of <canvas> are supported: gradients can be linear or radial, have multiple stops, and
2474 can specify their points as percentages (for reusable gradients across different box sizes).
2478 Added fast/gradients/simple-gradients.html
2480 * WebCore.xcodeproj/project.pbxproj:
2481 * css/CSSBorderImageValue.cpp:
2482 (WebCore::CSSBorderImageValue::CSSBorderImageValue):
2483 * css/CSSBorderImageValue.h:
2484 (WebCore::CSSBorderImageValue::imageValue):
2485 (WebCore::CSSBorderImageValue::generatorValue):
2486 * css/CSSComputedStyleDeclaration.cpp:
2487 (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2488 * css/CSSGradientValue.cpp: Added.
2489 (WebCore::CSSGradientValue::cssText):
2490 (WebCore::CSSGradientValue::createGradient):
2491 (WebCore::CSSGradientValue::image):
2492 (WebCore::compareStops):
2493 (WebCore::CSSGradientValue::sortStopsIfNeeded):
2494 (WebCore::CSSGradientValue::resolvePoint):
2495 (WebCore::CSSGradientValue::resolveRadius):
2496 * css/CSSGradientValue.h: Added.
2498 (WebCore::CSSGradientColorStop::CSSGradientColorStop):
2499 (WebCore::CSSGradientValue::CSSGradientValue):
2500 (WebCore::CSSGradientValue::type):
2501 (WebCore::CSSGradientValue::setType):
2502 (WebCore::CSSGradientValue::setFirstX):
2503 (WebCore::CSSGradientValue::setFirstY):
2504 (WebCore::CSSGradientValue::setSecondX):
2505 (WebCore::CSSGradientValue::setSecondY):
2506 (WebCore::CSSGradientValue::setFirstRadius):
2507 (WebCore::CSSGradientValue::setSecondRadius):
2508 (WebCore::CSSGradientValue::addStop):
2509 * css/CSSImageGeneratorValue.cpp: Added.
2510 (WebCore::CSSImageGeneratorValue::~CSSImageGeneratorValue):
2511 (WebCore::CSSImageGeneratorValue::addClient):
2512 (WebCore::CSSImageGeneratorValue::removeClient):
2513 (WebCore::CSSImageGeneratorValue::getImage):
2514 (WebCore::CSSImageGeneratorValue::putImage):
2515 * css/CSSImageGeneratorValue.h: Added.
2516 (WebCore::CSSImageGeneratorValue::isImageGeneratorValue):
2517 * css/CSSImageValue.h:
2518 (WebCore::CSSImageValue::isImageValue):
2519 * css/CSSParser.cpp:
2520 (WebCore::CSSParser::parseBackgroundImage):
2521 (WebCore::BorderImageParseContext::commitImage):
2522 (WebCore::CSSParser::parseBorderImage):
2523 (WebCore::parseGradientPoint):
2524 (WebCore::parseGradientColorStop):
2525 (WebCore::CSSParser::parseGradient):
2527 * css/CSSStyleSelector.cpp:
2528 (WebCore::CSSStyleSelector::applyProperty):
2529 (WebCore::CSSStyleSelector::createStyleImage):
2530 (WebCore::CSSStyleSelector::mapBackgroundImage):
2531 * css/CSSStyleSelector.h:
2533 (WebCore::CSSValue::isImageValue):
2534 (WebCore::CSSValue::isImageGeneratorValue):
2535 * html/CanvasRenderingContext2D.cpp:
2536 (WebCore::CanvasRenderingContext2D::isPointInPath):
2537 * platform/graphics/BitmapImage.cpp:
2538 (WebCore::BitmapImage::BitmapImage):
2539 (WebCore::BitmapImage::dataChanged):
2540 (WebCore::BitmapImage::frameCount):
2541 * platform/graphics/BitmapImage.h:
2542 * platform/graphics/GraphicsContext.cpp:
2543 (WebCore::GraphicsContext::clipToImageBuffer):
2544 * platform/graphics/GraphicsContext.h:
2545 * platform/graphics/ImageBuffer.h:
2546 (WebCore::ImageBuffer::cgImage):
2547 (WebCore::ImageBuffer::image):
2548 * platform/graphics/cg/GraphicsContextCG.cpp:
2549 (WebCore::GraphicsContext::clipToImageBuffer):
2550 (WebCore::GraphicsContext::paintBuffer):
2551 (WebCore::GraphicsContext::drawImage):
2552 * platform/graphics/cg/ImageBufferCG.cpp:
2553 (WebCore::ImageBuffer::create):
2554 (WebCore::ImageBuffer::ImageBuffer):
2555 (WebCore::ImageBuffer::~ImageBuffer):
2556 (WebCore::ImageBuffer::image):
2557 (WebCore::ImageBuffer::getImageData):
2558 (WebCore::ImageBuffer::putImageData):
2559 (WebCore::ImageBuffer::toDataURL):
2560 * platform/graphics/cg/ImageCG.cpp:
2561 (WebCore::BitmapImage::BitmapImage):
2562 (WebCore::BitmapImage::draw):
2563 (WebCore::Image::drawPattern):
2564 * platform/graphics/qt/ImageQt.cpp:
2565 (WebCore::BitmapImage::BitmapImage):
2566 * rendering/InlineFlowBox.cpp:
2567 (WebCore::InlineFlowBox::paintBackground):
2568 * rendering/RenderBox.cpp:
2569 (WebCore::RenderBox::calculateBackgroundSize):
2570 (WebCore::RenderBox::imageChanged):
2571 (WebCore::RenderBox::paintBackgroundExtended):
2572 * rendering/RenderObject.cpp:
2573 (WebCore::RenderObject::mustRepaintBackgroundOrBorder):
2574 (WebCore::RenderObject::updateBackgroundImages):
2575 (WebCore::RenderObject::arenaDelete):
2576 * rendering/RenderStyle.cpp:
2577 (WebCore::StyleCachedImage::cssValue):
2578 (WebCore::StyleCachedImage::canRender):
2579 (WebCore::StyleCachedImage::imageSize):
2580 (WebCore::StyleCachedImage::setImageContainerSize):
2581 (WebCore::StyleCachedImage::addClient):
2582 (WebCore::StyleCachedImage::removeClient):
2583 (WebCore::StyleCachedImage::image):
2584 (WebCore::StyleGeneratedImage::cssValue):
2585 (WebCore::StyleGeneratedImage::imageSize):
2586 (WebCore::StyleGeneratedImage::setImageContainerSize):
2587 (WebCore::StyleGeneratedImage::addClient):
2588 (WebCore::StyleGeneratedImage::removeClient):
2589 (WebCore::StyleGeneratedImage::image):
2590 * rendering/RenderStyle.h:
2591 (WebCore::StyleImage::StyleImage):
2592 (WebCore::StyleImage::~StyleImage):
2593 (WebCore::StyleImage::operator==):
2594 (WebCore::StyleImage::canRender):
2595 (WebCore::StyleImage::isCachedImage):
2596 (WebCore::StyleImage::isGeneratedImage):
2597 (WebCore::StyleCachedImage::StyleCachedImage):
2598 (WebCore::StyleCachedImage::data):
2599 (WebCore::StyleCachedImage::isCachedImage):
2600 (WebCore::StyleGeneratedImage::StyleGeneratedImage):
2601 (WebCore::StyleGeneratedImage::data):
2602 (WebCore::StyleGeneratedImage::isGeneratedImage):
2603 (WebCore::BackgroundLayer::backgroundImage):
2604 (WebCore::BackgroundLayer::setBackgroundImage):
2605 (WebCore::BackgroundLayer::containsImage):
2606 (WebCore::RenderStyle::backgroundImage):
2607 (WebCore::RenderStyle::initialBackgroundImage):
2608 * svg/graphics/cg/SVGPaintServerGradientCg.cpp:
2609 (WebCore::SVGPaintServerGradient::teardown):
2610 * svg/graphics/cg/SVGResourceMaskerCg.mm:
2611 (WebCore::SVGResourceMasker::applyMask):
2613 2008-04-11 Dan Bernstein <mitz@apple.com>
2615 Reviewed by Oliver Hunt.
2617 - add SVGGlyphMap.h to project files
2619 * WebCore.vcproj/WebCore.vcproj:
2620 * WebCore.xcodeproj/project.pbxproj:
2622 2008-04-11 Anders Carlsson <andersca@apple.com>
2628 * loader/archive/ArchiveResource.h:
2629 (WebCore::ArchiveResource::response):
2630 This should be const.
2632 2008-04-11 Antti Koivisto <antti@apple.com>
2634 Try to fix Qt build.
2636 * svg/animation/SMILTime.cpp:
2638 2008-04-11 Anders Carlsson <andersca@apple.com>
2642 Don't create the ArchiveResource response lazily.
2644 * loader/archive/ArchiveResource.cpp:
2645 (WebCore::ArchiveResource::ArchiveResource):
2646 * loader/archive/ArchiveResource.h:
2647 (WebCore::ArchiveResource::response):
2649 2008-04-11 Jan Michael Alonzo <jmalonzo@unpluggable.com>
2651 Reviewed by Mark Rowe.
2653 Added missing '\' in the svg include path
2657 2008-04-11 Antti Koivisto <antti@apple.com>
2659 Another attempted Qt build fix.
2663 2008-04-11 Antti Koivisto <antti@apple.com>
2667 Fix build when SVG is enabled but SVG_ANIMATION is not.
2670 * bindings/js/JSSVGElementWrapperFactory.cpp:
2671 * bindings/objc/DOM.mm:
2672 (WebCore::createElementClassMap):
2673 * svg/SVGAElement.cpp:
2674 (WebCore::SVGAElement::defaultEventHandler):
2675 * svg/SVGAnimateColorElement.cpp:
2676 * svg/SVGAnimateColorElement.h:
2677 * svg/SVGAnimateColorElement.idl:
2678 * svg/SVGAnimateMotionElement.h:
2679 * svg/SVGAnimationElement.cpp:
2680 (WebCore::SVGAnimationElement::animationMode):
2681 * svg/SVGAnimationElement.h:
2682 * svg/SVGAnimationElement.idl:
2683 * svg/SVGSetElement.cpp:
2684 * svg/SVGSetElement.h:
2685 * svg/SVGSetElement.idl:
2686 * svg/animation/SMILTimeContainer.cpp:
2687 (WebCore::SMILTimeContainer::begin):
2688 (WebCore::SMILTimeContainer::pause):
2689 (WebCore::SMILTimeContainer::resume):
2690 (WebCore::SMILTimeContainer::elapsed):
2691 (WebCore::SMILTimeContainer::isPaused):
2692 (WebCore::SMILTimeContainer::timerFired):
2693 * svg/animation/SMILTimeContainer.h:
2694 * svg/animation/SVGSMILElement.cpp:
2695 * svg/animation/SVGSMILElement.h:
2698 2008-04-11 Anders Carlsson <andersca@apple.com>
2702 Move archive loading from FrameLoader to DocumentLoader.
2704 * loader/DocumentLoader.cpp:
2705 (WebCore::DocumentLoader::DocumentLoader):
2706 (WebCore::DocumentLoader::clearArchiveResources):
2707 (WebCore::DocumentLoader::deliverArchivedResourcesAfterDelay):
2708 (WebCore::DocumentLoader::archiveResourceDeliveryTimerFired):
2709 (WebCore::DocumentLoader::isArchiveLoadPending):
2710 (WebCore::DocumentLoader::cancelPendingArchiveLoad):
2711 (WebCore::DocumentLoader::scheduleArchiveLoad):
2712 (WebCore::DocumentLoader::setDefersLoading):
2713 * loader/DocumentLoader.h:
2714 * loader/FrameLoader.cpp:
2715 (WebCore::FrameLoader::FrameLoader):
2716 (WebCore::FrameLoader::setDefersLoading):
2717 (WebCore::FrameLoader::stopAllLoaders):
2718 * loader/FrameLoader.h:
2719 * loader/ResourceLoader.cpp:
2720 (WebCore::ResourceLoader::load):
2721 (WebCore::ResourceLoader::didCancel):
2723 2008-04-11 Timothy Hatcher <timothy@apple.com>
2725 Fixes the regression where the DOM tree does not update when navigating
2726 to another page with the Inspector open.
2728 https://bugs.webkit.org/show_bug.cgi?id=18418
2730 Reviewed by Adam Roben.
2732 * page/inspector/ElementsPanel.js:
2733 (WebInspector.ElementsPanel.prototype.reset): If the inspected document does not have a
2734 firstChild yet, add an event listener for DOMContentLoaded. The event listener just sets
2735 a proeprty that a polling functions looks for then triggers the reset.
2736 (WebInspector.ElementsPanel.prototype._focusedNodeChanged): Always call updateStyles with
2737 forceUpdate as true. This makes sure the Styles pane clears when there isn't a focused node.
2739 2008-04-11 Dan Bernstein <mitz@apple.com>
2741 Reviewed by Timothy Hatcher.
2743 - fix http://bugs.webkit.org/show_bug.cgi?id=18412
2744 Inspector truncates text when editing a CSS property
2746 * page/inspector/inspector.css:
2748 2008-04-11 Antti Koivisto <antti@apple.com>
2750 Try to fix Qt build by including some headers.
2753 * platform/graphics/UnitBezier.h:
2754 * svg/SVGAnimationElement.cpp:
2755 * svg/animation/SMILTime.h:
2756 * svg/animation/SVGSMILElement.cpp:
2758 2008-04-11 Antti Koivisto <antti@apple.com>
2760 Try to fix Windows build by switching to std::sort().
2762 * svg/animation/SVGSMILElement.cpp:
2763 (WebCore::sortTimeList):
2765 2008-04-11 Rob Buis <buis@kde.org>
2769 http://bugs.webkit.org/show_bug.cgi?id=18340
2770 Elements with display="none" in a <clipPath> still contribute to clipping path
2772 Skip elements in clip-path container that have display=none specified.
2774 * svg/SVGClipPathElement.cpp:
2775 (WebCore::SVGClipPathElement::canvasResource):
2777 2008-04-10 Antti Koivisto <antti@apple.com>
2781 Redo the SVG animation support.
2784 - Full SMIL interval timing model including syncbase and event base timing (the hard part).
2785 - CSS and XML attribute animation.
2786 - Linear, discrete and spline calcModes.
2787 - Values animation with keyTimes and keySplines.
2788 - Link activated animations.
2789 - Pretty good support for <animate> and <set> animations
2790 - Basic support for <animateColor>, <animateMotion> and <animateTransform>.
2792 This passes some 35 of the 56 tests in W3C SVG animation test suite, a bunch more
2793 with some subtest failures.
2795 What is still missing
2796 - Additive animation with multiple animations operating on the same property. This is a
2797 major architectural feature in animation code. It shouldn't be too hard to add.
2798 - Only <animate> implements accumulate.
2799 - <animateMotion> does not do paths, keypoints, rotate.
2800 - <animateTransform> does not work correctly in all cases
2801 - calcMode paced is missing.
2802 - repeat, beginEvent, endEvent are missing.
2803 - accesskey() is missing.
2804 - JS does not see correct values for baseVal/animVal, changing values that are being
2805 animted for a script produces wrong results. This problem needs to be solved outside
2807 - Some other stuff I forgot or do not know about.
2811 * WebCore.vcproj/WebCore.vcproj:
2812 * WebCore.xcodeproj/project.pbxproj:
2814 * history/CachedPage.cpp:
2815 (WebCore::CachedPage::CachedPage):
2817 Use cache notification mechanism to start/stop animations.
2819 * svg/SVGAElement.cpp:
2820 (WebCore::SVGAElement::defaultEventHandler):
2822 Start target animation on link activation.
2824 * svg/SVGAnimateColorElement.cpp:
2825 (WebCore::SVGAnimateColorElement::applyAnimatedValueToElement):
2826 (WebCore::SVGAnimateColorElement::updateAnimatedValue):
2827 (WebCore::SVGAnimateColorElement::calculateFromAndToValues):
2828 (WebCore::SVGAnimateColorElement::calculateFromAndByValues):
2829 * svg/SVGAnimateColorElement.h:
2830 * svg/SVGAnimateElement.cpp:
2831 (WebCore::SVGAnimateElement::SVGAnimateElement):
2832 (WebCore::parseNumberValueAndUnit):
2833 (WebCore::SVGAnimateElement::applyAnimatedValueToElement):
2834 (WebCore::SVGAnimateElement::updateAnimatedValue):
2835 (WebCore::isColorAttribute):
2836 (WebCore::SVGAnimateElement::calculateFromAndToValues):
2837 (WebCore::SVGAnimateElement::calculateFromAndByValues):
2838 * svg/SVGAnimateElement.h:
2839 (WebCore::SVGAnimateElement::):
2840 * svg/SVGAnimateMotionElement.cpp:
2841 (WebCore::SVGAnimateMotionElement::SVGAnimateMotionElement):
2842 (WebCore::SVGAnimateMotionElement::parseMappedAttribute):
2843 (WebCore::SVGAnimateMotionElement::updateAnimatedValue):
2844 (WebCore::parsePoint):
2845 (WebCore::SVGAnimateMotionElement::calculateFromAndToValues):
2846 (WebCore::SVGAnimateMotionElement::calculateFromAndByValues):
2847 (WebCore::SVGAnimateMotionElement::applyAnimatedValueToElement):
2848 (WebCore::SVGAnimateMotionElement::startedActiveInterval):
2849 * svg/SVGAnimateMotionElement.h:
2850 * svg/SVGAnimateTransformElement.cpp:
2851 (WebCore::SVGAnimateTransformElement::SVGAnimateTransformElement):
2852 (WebCore::SVGAnimateTransformElement::hasValidTarget):
2853 (WebCore::SVGAnimateTransformElement::updateAnimatedValue):
2854 (WebCore::transformListFor):
2855 (WebCore::SVGAnimateTransformElement::applyAnimatedValueToElement):
2856 (WebCore::SVGAnimateTransformElement::calculateFromAndToValues):
2857 (WebCore::SVGAnimateTransformElement::calculateFromAndByValues):
2858 (WebCore::SVGAnimateTransformElement::startedActiveInterval):
2859 (WebCore::SVGAnimateTransformElement::parseTransformValue):
2860 * svg/SVGAnimateTransformElement.h:
2862 Concrete anmation element classes.
2864 * svg/SVGAnimationElement.cpp:
2865 (WebCore::SVGAnimationElement::SVGAnimationElement):
2866 (WebCore::SVGAnimationElement::~SVGAnimationElement):
2867 (WebCore::parseKeyTimes):
2868 (WebCore::parseKeySplines):
2869 (WebCore::SVGAnimationElement::parseMappedAttribute):
2870 (WebCore::SVGAnimationElement::attributeChanged):
2871 (WebCore::SVGAnimationElement::getStartTime):
2872 (WebCore::SVGAnimationElement::getCurrentTime):
2873 (WebCore::SVGAnimationElement::getSimpleDuration):
2874 (WebCore::SVGAnimationElement::beginElement):
2875 (WebCore::SVGAnimationElement::beginElementAt):
2876 (WebCore::SVGAnimationElement::endElement):
2877 (WebCore::SVGAnimationElement::endElementAt):
2878 (WebCore::SVGAnimationElement::animationMode):
2879 (WebCore::SVGAnimationElement::calcMode):
2880 (WebCore::SVGAnimationElement::attributeType):
2881 (WebCore::SVGAnimationElement::toValue):
2882 (WebCore::SVGAnimationElement::byValue):
2883 (WebCore::SVGAnimationElement::fromValue):
2884 (WebCore::SVGAnimationElement::attributeName):
2885 (WebCore::SVGAnimationElement::isAdditive):
2886 (WebCore::SVGAnimationElement::isAccumulated):
2887 (WebCore::SVGAnimationElement::hasValidTarget):
2888 (WebCore::SVGAnimationElement::targetAttributeIsCSS):
2889 (WebCore::SVGAnimationElement::setTargetAttributeAnimatedValue):
2890 (WebCore::SVGAnimationElement::targetAttributeBaseValue):
2891 (WebCore::solveEpsilon):
2892 (WebCore::SVGAnimationElement::currentValuesForValuesAnimation):
2893 (WebCore::SVGAnimationElement::startedActiveInterval):
2894 (WebCore::SVGAnimationElement::applyAnimation):
2895 (WebCore::SVGAnimationElement::unapplyAnimation):
2896 (WebCore::SVGAnimationElement::endedActiveInterval):
2897 * svg/SVGAnimationElement.h:
2898 (WebCore::SVGAnimationElement::):
2900 This is pretty much a complete rewrite of the SVGAnimationElement. Timing related functionality
2901 was refactored to SMILTimingElement class that this class now inherits.
2903 * svg/SVGDocumentExtensions.cpp:
2904 (WebCore::SVGDocumentExtensions::startAnimations):
2905 * svg/SVGElement.cpp:
2906 (WebCore::SVGElement::ownerSVGElement):
2907 * svg/SVGSVGElement.cpp:
2909 We need to reach the <svg> element from <use> too so go out from the shadow tree.
2911 (WebCore::SVGSVGElement::SVGSVGElement):
2912 (WebCore::SVGSVGElement::~SVGSVGElement):
2913 (WebCore::SVGSVGElement::pauseAnimations):
2914 (WebCore::SVGSVGElement::unpauseAnimations):
2915 (WebCore::SVGSVGElement::animationsPaused):
2916 (WebCore::SVGSVGElement::getCurrentTime):
2917 (WebCore::SVGSVGElement::willSaveToCache):
2918 (WebCore::SVGSVGElement::willRestoreFromCache):
2919 * svg/SVGSVGElement.h:
2920 (WebCore::SVGSVGElement::timeContainer):
2921 * svg/SVGSetElement.cpp:
2922 (WebCore::SVGSetElement::applyAnimatedValueToElement):
2923 (WebCore::SVGSetElement::calculateFromAndToValues):
2924 (WebCore::SVGSetElement::calculateFromAndByValues):
2925 (WebCore::SVGSetElement::updateAnimatedValue):
2926 * svg/SVGSetElement.h:
2928 Concrete anmation element classes.
2930 * svg/SVGTimer.cpp: Removed.
2931 * svg/SVGTimer.h: Removed.
2932 * svg/SVGUseElement.cpp:
2933 (WebCore::SVGUseElement::removedFromDocument):
2934 * svg/TimeScheduler.cpp: Removed.
2935 * svg/TimeScheduler.h: Removed.
2937 Replaced these with SMILTimeContainer class.
2939 * svg/animation: Added.
2940 * svg/animation/SMILTime.cpp: Added.
2941 (WebCore::operator+):
2942 (WebCore::operator-):
2943 (WebCore::operator*):
2944 * svg/animation/SMILTime.h: Added.
2945 (WebCore::SMILTime::SMILTime):
2946 (WebCore::SMILTime::unresolved):
2947 (WebCore::SMILTime::indefinite):
2948 (WebCore::SMILTime::operator=):
2949 (WebCore::SMILTime::value):
2950 (WebCore::SMILTime::isFinite):
2951 (WebCore::SMILTime::isIndefinite):
2952 (WebCore::SMILTime::isUnresolved):
2953 (WebCore::operator==):
2954 (WebCore::operator!=):
2955 (WebCore::operator>):
2956 (WebCore::operator<):
2957 (WebCore::operator>=):
2958 (WebCore::operator<=):
2962 A floating point number with special values "indefinite" and "unresolved". Defines math for those.
2964 * svg/animation/SMILTimeContainer.cpp: Added.
2965 (WebCore::SMILTimeContainer::SMILTimeContainer):
2966 (WebCore::SMILTimeContainer::schedule):
2967 (WebCore::SMILTimeContainer::unschedule):
2968 (WebCore::SMILTimeContainer::elapsed):
2969 (WebCore::SMILTimeContainer::isActive):
2970 (WebCore::SMILTimeContainer::isPaused):
2971 (WebCore::SMILTimeContainer::begin):
2972 (WebCore::SMILTimeContainer::pause):
2973 (WebCore::SMILTimeContainer::resume):
2974 (WebCore::SMILTimeContainer::startTimer):
2975 (WebCore::SMILTimeContainer::timerFired):
2976 (WebCore::SMILTimeContainer::updateAnimations):
2977 * svg/animation/SMILTimeContainer.h: Added.
2979 Manages the clock and time line for active animations in a document.
2981 * svg/animation/SVGSMILElement.cpp: Added.
2982 (WebCore::ConditionEventListener::ConditionEventListener):
2983 (WebCore::ConditionEventListener::handleEvent):
2984 (WebCore::SVGSMILElement::Condition::Condition):
2985 (WebCore::SVGSMILElement::SVGSMILElement):
2986 (WebCore::SVGSMILElement::~SVGSMILElement):
2987 (WebCore::SVGSMILElement::insertedIntoDocument):
2988 (WebCore::SVGSMILElement::removedFromDocument):
2989 (WebCore::SVGSMILElement::finishParsingChildren):
2990 (WebCore::SVGSMILElement::parseOffsetValue):
2991 (WebCore::SVGSMILElement::parseClockValue):
2992 (WebCore::smilTimeSortFunction):
2993 (WebCore::sortTimeList):
2994 (WebCore::SVGSMILElement::parseCondition):
2995 (WebCore::SVGSMILElement::isTimingElement):
2996 (WebCore::SVGSMILElement::parseBeginOrEnd):
2997 (WebCore::SVGSMILElement::parseMappedAttribute):
2998 (WebCore::SVGSMILElement::attributeChanged):
2999 (WebCore::SVGSMILElement::connectConditions):
3000 (WebCore::SVGSMILElement::disconnectConditions):
3001 (WebCore::SVGSMILElement::reschedule):
3002 (WebCore::SVGSMILElement::targetElement):
3003 (WebCore::SVGSMILElement::elapsed):
3004 (WebCore::SVGSMILElement::restart):
3005 (WebCore::SVGSMILElement::fill):
3006 (WebCore::SVGSMILElement::xlinkHref):
3007 (WebCore::SVGSMILElement::dur):
3008 (WebCore::SVGSMILElement::repeatDur):
3009 (WebCore::SVGSMILElement::repeatCount):
3010 (WebCore::SVGSMILElement::maxValue):
3011 (WebCore::SVGSMILElement::minValue):
3012 (WebCore::SVGSMILElement::simpleDuration):
3013 (WebCore::SVGSMILElement::addBeginTime):
3014 (WebCore::SVGSMILElement::addEndTime):
3015 (WebCore::SVGSMILElement::findInstanceTime):
3016 (WebCore::SVGSMILElement::repeatingDuration):
3017 (WebCore::SVGSMILElement::resolveActiveEnd):
3018 (WebCore::SVGSMILElement::resolveInterval):
3019 (WebCore::SVGSMILElement::resolveFirstInterval):
3020 (WebCore::SVGSMILElement::resolveNextInterval):
3021 (WebCore::SVGSMILElement::nextProgressTime):
3022 (WebCore::SVGSMILElement::beginListChanged):
3023 (WebCore::SVGSMILElement::endListChanged):
3024 (WebCore::SVGSMILElement::checkRestart):
3025 (WebCore::SVGSMILElement::calculateAnimationPercentAndRepeat):
3026 (WebCore::SVGSMILElement::calculateNextProgressTime):
3027 (WebCore::SVGSMILElement::determineActiveState):
3028 (WebCore::SVGSMILElement::progress):
3029 (WebCore::SVGSMILElement::notifyDependentsIntervalChanged):
3030 (WebCore::SVGSMILElement::createInstanceTimesFromSyncbase):
3031 (WebCore::SVGSMILElement::addTimeDependent):
3032 (WebCore::SVGSMILElement::removeTimeDependent):
3033 (WebCore::SVGSMILElement::handleConditionEvent):
3034 (WebCore::SVGSMILElement::beginByLinkActivation):
3035 * svg/animation/SVGSMILElement.h: Added.
3036 (WebCore::SVGSMILElement::timeContainer):
3037 (WebCore::SVGSMILElement::):
3038 (WebCore::SVGSMILElement::intervalBegin):
3039 (WebCore::SVGSMILElement::intervalEnd):
3040 (WebCore::SVGSMILElement::Condition::):
3042 This abstract class implements the SMIL timing model. As an output it produces calls
3043 to these virtual functions:
3045 virtual void startedActiveInterval() = 0;
3046 virtual void applyAnimation(float percent, unsigned repeat) = 0;
3047 virtual void unapplyAnimation() = 0;
3048 virtual void endedActiveInterval() = 0;
3050 2008-04-10 Antti Koivisto <antti@apple.com>
3054 Move CurveData out from AnimationController.cpp and rename
3055 it to UnitBezier. This makes it possible to reuse this nice class from the
3058 * WebCore.vcproj/WebCore.vcproj:
3059 * WebCore.xcodeproj/project.pbxproj:
3060 * page/AnimationController.cpp:
3061 (WebCore::solveCubicBezierFunction):
3062 * platform/graphics/UnitBezier.h: Added.
3063 (WebCore::UnitBezier::UnitBezier):
3064 (WebCore::UnitBezier::sampleCurveX):
3065 (WebCore::UnitBezier::sampleCurveY):
3066 (WebCore::UnitBezier::sampleCurveDerivativeX):
3067 (WebCore::UnitBezier::solveCurveX):
3068 (WebCore::UnitBezier::solve):
3070 2008-04-10 Brady Eidson <beidson@apple.com>
3072 Reviewed by Sam Weinig
3074 The name "OriginStorage" never felt right to a few of us. The HTML5 spec refers to our
3075 concept of "OriginStorage" as a "storage area", which makes more sense here.
3077 This patch is basically:
3078 s/OriginStorage/StorageArea/
3082 * WebCore.vcproj/WebCore.vcproj:
3083 * WebCore.xcodeproj/project.pbxproj:
3084 * WebCoreSources.bkl:
3086 * loader/FrameLoader.cpp:
3088 * page/DOMWindow.cpp:
3089 (WebCore::DOMWindow::sessionStorage):
3092 * storage/OriginStorage.cpp: Removed.
3093 * storage/OriginStorage.h: Removed.
3095 * storage/SessionStorage.cpp:
3096 (WebCore::SessionStorage::copy):
3097 (WebCore::SessionStorage::storageArea):
3098 * storage/SessionStorage.h:
3100 * storage/Storage.cpp:
3101 (WebCore::Storage::create):
3102 (WebCore::Storage::Storage):
3103 (WebCore::Storage::length):
3104 (WebCore::Storage::key):
3105 (WebCore::Storage::getItem):
3106 (WebCore::Storage::setItem):
3107 (WebCore::Storage::removeItem):
3108 (WebCore::Storage::contains):
3109 * storage/Storage.h:
3111 * storage/StorageArea.cpp: Copied from storage/OriginStorage.cpp.
3112 (WebCore::StorageArea::create):
3113 (WebCore::StorageArea::StorageArea):
3114 (WebCore::StorageArea::~StorageArea):
3115 (WebCore::StorageArea::copy):
3116 (WebCore::StorageArea::length):
3117 (WebCore::StorageArea::key):
3118 (WebCore::StorageArea::getItem):
3119 (WebCore::StorageArea::setItem):
3120 (WebCore::StorageArea::removeItem):
3121 (WebCore::StorageArea::contains):
3122 (WebCore::StorageArea::dispatchStorageEvent):
3123 * storage/StorageArea.h: Copied from storage/OriginStorage.h.
3125 2008-04-10 Xan Lopez <xan@gnome.org>
3127 Reviewed by Alp Toker.
3129 http://bugs.webkit.org/show_bug.cgi?id=18342
3130 Bug #18342 - Add logging to HTTP soup backend
3132 Add soup logging facilities to HTTP soup backend.
3133 Enable defining WEBKIT_SOUP_LOGGING, with values from
3134 0 to 3 for more verbosity.
3136 * platform/network/soup/ResourceHandleSoup.cpp:
3137 (WebCore::ResourceHandle::start):
3139 2008-04-10 Timothy Hatcher <timothy@apple.com>
3141 Fixes floating point precision in the Resources graph labels by using String.sprintf to
3142 format the values. Also makes the image view use Number.bytesToString when showing the file
3143 size. Makes Number.bytesToString and Number.secondsToString take an optional formatter function
3144 so the Inspector can pass WebInspector.UIString, so the format strings can be localized.
3146 https://bugs.webkit.org/show_bug.cgi?id=18381
3147 https://bugs.webkit.org/show_bug.cgi?id=14333
3149 Reviewed by Adam Roben.
3151 * English.lproj/InspectorLocalizedStrings.js: Added the new strings.
3152 * page/inspector/ImageView.js:
3153 (WebInspector.ImageView): Use Number.bytesToString to format this.resource.contentLength.
3154 * page/inspector/ResourcesPanel.js:
3155 (WebInspector.ResourceTransferTimeCalculator.prototype.formatValue): Pass WebInspector.UIString
3156 to Number.secondsToString.
3157 (WebInspector.ResourceTransferSizeCalculator.prototype.formatValue): Pass WebInspector.UIString
3158 to Number.bytesToString.
3159 * page/inspector/utilities.js:
3160 (Number.secondsToString): Added a formatterFunction argument. Use the formatter and format strings
3161 to control the number precision.
3162 (Number.bytesToString): Ditto.
3164 2008-04-010 Alice Liu <alice.liu@apple.com>
3166 Reviewed by Dan Bernstein.
3168 Fixed <rdar://5815856> CrashTracer: [USER] 8384 crashes in WebCore::Widget::getView const + 6
3170 Test: fast/events/mouseout-dead-subframe.html
3172 * page/EventHandler.cpp:
3173 dispatching a mouse event can change the document structure, necessitating
3174 a check for whether we still want to pass the event to the pre-determined subframe
3175 (WebCore::EventHandler::handleMouseMoveEvent):
3177 2008-04-10 Antti Koivisto <antti@apple.com>
3181 Fix scale transform. This will be tested by the animation test suite when
3182 SVG animation support lands.
3184 * svg/SVGTransformDistance.cpp:
3185 (WebCore::SVGTransformDistance::SVGTransformDistance):
3187 2008-04-10 David Hyatt <hyatt@apple.com>
3189 Add a gradient fillRect method to GraphicsContext. This is implemented only in the CG port. I stubbed
3190 out a method in GraphicsContext.cpp with notImplemented(). Other platforms will need to add their own
3191 gradient fill methods.
3195 * platform/graphics/GraphicsContext.cpp:
3196 (WebCore::GraphicsContext::fillRect):
3197 * platform/graphics/GraphicsContext.h:
3198 * platform/graphics/cg/GraphicsContextCG.cpp:
3199 (WebCore::GraphicsContext::fillRect):
3201 2008-04-10 David Hyatt <hyatt@apple.com>
3203 Gradient improvements. Support for adding color stops by Color and not just by String. Add the ability to mark
3204 stops as already being sorted.
3208 * platform/graphics/Gradient.cpp:
3209 (WebCore::Gradient::addColorStop):
3210 * platform/graphics/Gradient.h:
3211 (WebCore::Gradient::setStopsSorted):
3213 2008-04-10 Timothy Hatcher <timothy@apple.com>
3215 Fixes the build where some wtf headers would not be copied due
3216 to a bug in some older versions of Xcode.
3218 Rubber-stamped by Adam Roben.
3220 * WebCore.xcodeproj/project.pbxproj: Adds a new script phase to handle
3221 the copying of the icu and ForwardingHeaders folder to WebCore's PrivateHeaders.
3222 Removes the old copy files phase and the icu and ForwardingHeaders folder references.
3224 2008-04-09 Brady Eidson <beidson@apple.com>
3226 Reviewed by Mitz Pettel
3228 Add the "onstorage" attribute for the body element to provide easy setup of StorageEvent handling.
3230 Tests: storage/domstorage/sessionstorage/onstorage-attribute-markup.html
3231 storage/domstorage/sessionstorage/onstorage-attribute-setattribute.html
3233 * html/HTMLAttributeNames.in: Added "onstorage"
3234 * html/HTMLBodyElement.cpp:
3235 (WebCore::HTMLBodyElement::parseMappedAttribute): Handle this attribute on the body element *only*
3236 because that's where the HTML5 spec says StorageEvents go. This might change in the future
3238 2008-04-09 Antti Koivisto <antti@apple.com>
3242 Remove a less-than-critical bit from Node and replace it with a hash. Those bits are valuable!
3244 Also moved setting of the guard to dispatchSimulatedClick for better consistency.
3245 No one else calls dispatchSimulatedMouseEvent() currently and this is really a click() specific behavior.
3247 * dom/EventTargetNode.cpp:
3248 (WebCore::EventTargetNode::dispatchSimulatedMouseEvent):
3249 (WebCore::EventTargetNode::dispatchSimulatedClick):
3251 (WebCore::Node::Node):
3254 2008-04-09 Sam Weinig <sam@webkit.org>
3256 Reviewed by Geoffrey Garen.
3258 Fix for https://bugs.webkit.org/show_bug.cgi?id=18389
3259 Crash in JSDOMWindowWrapper::mark loading digg.com
3261 - Add a null check to JSDOMWindowWrapper::mark for the case when the collector
3262 runs during its allocation.
3263 - Cleans up the creation of the window to be a little more straight forward.
3265 * bindings/js/JSDOMWindowBase.cpp:
3266 (WebCore::JSDOMWindowBasePrivate::JSDOMWindowBasePrivate):
3267 (WebCore::JSDOMWindowBase::JSDOMWindowBase):
3268 (WebCore::JSDOMWindowBase::clear):
3269 (WebCore::JSDOMWindowBase::wrapper):
3270 * bindings/js/JSDOMWindowBase.h:
3271 * bindings/js/JSDOMWindowWrapper.cpp:
3272 (WebCore::JSDOMWindowWrapper::JSDOMWindowWrapper):
3273 (WebCore::JSDOMWindowWrapper::mark):
3274 * bindings/js/JSDOMWindowWrapper.h:
3275 * bindings/js/kjs_proxy.cpp:
3276 (WebCore::KJSProxy::initScript):
3277 * bindings/scripts/CodeGeneratorJS.pm:
3279 2008-04-09 Brady Eidson <beidson@apple.com>
3281 Rubberstamped by Mitzpettel
3283 Added HTMLAttributeNames.in and HTMLTagNames.in to the xcodeproj for easy editing,
3284 and sorted the html group
3286 * WebCore.xcodeproj/project.pbxproj:
3288 2008-04-09 Brent Fulgham <bfulgham@gmail.com>
3292 Correct build regression in Windows (Cairo) build due to changes
3293 in FontDescription.h signature. (see http://bugs.webkit.org/show_bug.cgi?id=18394)
3295 * rendering/RenderThemeWin.cpp: Change for new font methods.
3296 (WebCore::RenderThemeWin::systemFont):
3298 2008-04-09 Brady Eidson <beidson@apple.com>
3300 Reviewed by Sam Weinig
3302 When enumerating a Storage object, the Storage built-ins should not be included, but the
3303 prototype chain SHOULD be included.
3305 * bindings/js/JSStorageCustom.cpp:
3306 (WebCore::JSStorage::customGetPropertyNames): Return false so the prototype chain is walked
3308 * storage/Storage.idl: Mark all built-ins as "DontEnum"
3310 2008-04-09 Brady Eidson <beidson@apple.com>
3312 Reviewed by Adam Roben
3314 Per the HTML5 spec, enumerating a Storage object should walk the keys in the storage area,
3315 and should not return the built-in properties.
3317 Test: storage/domstorage/sessionstorage/enumerate-storage.html
3319 * bindings/js/JSLocationCustom.cpp:
3320 (WebCore::JSLocation::customGetPropertyNames): Removed the name from an unused parameter
3322 * bindings/js/JSStorageCustom.cpp:
3323 (WebCore::JSStorage::customGetPropertyNames): Copy all of the keys into the property names array
3325 * storage/Storage.idl: Add CustomGetPropertyNames
3327 2008-04-09 Timothy Hatcher <timothy@apple.com>
3329 Fixes the regression where resource time/size pills do not
3330 update during a load in the Inspector.
3332 http://bugs.webkit.org/show_bug.cgi?id=18374
3334 Reviewed by John Sullivan.
3336 * page/inspector/ResourcesPanel.js:
3337 (ResourcesPanel.prototype.show): Remove an unneeded call to _updateGraphBars,
3338 since _updateSidebarWidth already calls _updateGraphBars.
3339 (ResourcesPanel.prototype.addResource): Call updateGraphSideWidth.
3340 (ResourcesPanel.prototype._updateGraphBars): Ditto.
3341 (ResourceSidebarTreeElement.prototype.updateGraphSideWidth): Update the
3342 style for graphSideElement with the passed in width.
3344 2008-04-09 Antti Koivisto <antti@apple.com>
3348 Avoid unnecessary calls to virtual updateStyleAttributeIfNeeded() method.
3349 - do the the checking in call sites instead of inside the function
3350 - rename to updateStyleAttribute()
3351 - use namedAttrMap directly (for getting id attribute) in insertedIntoDocument/removedFromDocument
3352 to avoid calling attributes() which may trigger style attribute update.
3355 (WebCore::Element::attributes):
3356 (WebCore::Element::getAttribute):
3357 (WebCore::Element::hasAttributes):
3358 (WebCore::Element::insertedIntoDocument):
3359 (WebCore::Element::removedFromDocument):
3361 (WebCore::Element::updateStyleAttribute):
3362 * dom/NamedAttrMap.cpp:
3363 (WebCore::NamedAttrMap::addAttribute):
3364 * dom/StyledElement.cpp:
3365 (WebCore::StyledElement::updateStyleAttribute):
3366 * dom/StyledElement.h:
3368 2008-04-09 Timothy Hatcher <timothy@apple.com>
3370 A more complete fix for: can't drag the Web Inspector when grabbing
3371 in the toolbar area. Makes dragging under the search field in the
3372 empty space work again.
3374 http://bugs.webkit.org/show_bug.cgi?id=18373
3376 Reviewed by Adam Roben.
3378 * page/inspector/inspector.js:
3379 (WebInspector.toolbarDragStart): Prevent dragging if the event target
3380 is a toggleable toolbar item. Allow dragging when the target is a
3381 normal toolbar item.
3383 2008-04-08 Sam Weinig <sam@webkit.org>
3385 Reviewed by Timothy Hatcher.
3387 Fix for http://bugs.webkit.org/show_bug.cgi?id=18373
3388 REGRESSION: Can't drag the Web Inspector when grabbing in the toolbar area
3390 * page/inspector/inspector.css:
3392 2008-04-08 Christian Persch <chpe@gnome.org>
3394 Reviewed by Alp Toker.
3396 http://bugs.webkit.org/show_bug.cgi?id=18360
3397 "missing sentinel" warnings in PluginDatabaseGtk.cpp
3399 Use NULL, not 0 as sentinel in varargs calls.
3401 * plugins/gtk/PluginDatabaseGtk.cpp:
3402 (WebCore::PluginDatabase::getPluginPathsInDirectories):
3403 (WebCore::PluginDatabase::defaultPluginDirectories):
3405 2008-04-04 Sam Weinig <sam@webkit.org>
3407 Reviewed by Geoffrey Garen.
3409 First step in implementing the "split window"
3411 - This patch takes the first step in changing the window navigation model
3412 from clearing the window properties on navigation, to replacing
3413 an inner window. This is necessary to safely perform security checks
3414 using the lexical global object.
3416 This first step adds a new class called JSDOMWindowWrapper, which wraps
3417 the real window object. All JS calls that would go to the window object
3418 now go to it, which it forwards to the current inner window. To accomplish
3419 this, the wrapper window is used as the ThisValue wherever the window was used
3423 * WebCore.xcodeproj/project.pbxproj:
3424 * bindings/js/JSDOMWindowBase.cpp:
3425 (WebCore::JSDOMWindowBase::JSDOMWindowBase):
3426 (WebCore::JSDOMWindowBase::clear): Reset the wrapper windows prototype too.
3427 (WebCore::JSDOMWindowBase::toThisObject):
3428 (WebCore::JSDOMWindowBase::wrapper):
3429 (WebCore::windowProtoFuncAToB):
3430 (WebCore::windowProtoFuncBToA):
3431 (WebCore::windowProtoFuncOpen):
3432 (WebCore::windowProtoFuncSetTimeout):
3433 (WebCore::windowProtoFuncClearTimeout):
3434 (WebCore::windowProtoFuncSetInterval):
3435 (WebCore::windowProtoFuncAddEventListener):
3436 (WebCore::windowProtoFuncRemoveEventListener):
3437 (WebCore::windowProtoFuncShowModalDialog):
3438 (WebCore::windowProtoFuncNotImplemented):
3440 * bindings/js/JSDOMWindowBase.h:
3441 Fix to expect the wrapper as the thisObj.
3442 * bindings/js/JSDOMWindowCustom.cpp:
3443 (WebCore::JSDOMWindow::postMessage):
3444 (WebCore::toDOMWindow):
3445 * bindings/js/JSDOMWindowWrapper.cpp: Added.
3447 (WebCore::JSDOMWindowWrapper::JSDOMWindowWrapper):
3448 (WebCore::JSDOMWindowWrapper::~JSDOMWindowWrapper):
3449 (WebCore::JSDOMWindowWrapper::mark):
3450 (WebCore::JSDOMWindowWrapper::className):
3451 (WebCore::JSDOMWindowWrapper::getOwnPropertySlot):
3452 (WebCore::JSDOMWindowWrapper::put):
3453 (WebCore::JSDOMWindowWrapper::deleteProperty):
3454 (WebCore::JSDOMWindowWrapper::getPropertyNames):
3455 (WebCore::JSDOMWindowWrapper::getPropertyAttributes):
3456 (WebCore::JSDOMWindowWrapper::defineGetter):
3457 (WebCore::JSDOMWindowWrapper::defineSetter):
3458 (WebCore::JSDOMWindowWrapper::lookupGetter):
3459 (WebCore::JSDOMWindowWrapper::lookupSetter):
3460 (WebCore::JSDOMWindowWrapper::toGlobalObject):
3461 (WebCore::JSDOMWindowWrapper::impl):
3462 (WebCore::JSDOMWindowWrapper::disconnectFrame):
3463 (WebCore::JSDOMWindowWrapper::clear):
3465 * bindings/js/JSDOMWindowWrapper.h: Added.
3466 (WebCore::JSDOMWindowWrapper::innerWindow):
3467 (WebCore::JSDOMWindowWrapper::setInnerWindow):
3468 (WebCore::JSDOMWindowWrapper::classInfo):
3469 Forward methods to the innerWindow.
3470 * bindings/js/JSHTMLDocumentCustom.cpp:
3471 (WebCore::JSHTMLDocument::open):
3472 * bindings/js/ScheduledAction.cpp:
3473 (WebCore::ScheduledAction::execute):
3474 * bindings/js/kjs_events.cpp:
3475 (WebCore::JSAbstractEventListener::handleEvent):
3476 * bindings/js/kjs_proxy.cpp:
3477 (WebCore::KJSProxy::~KJSProxy):
3478 (WebCore::KJSProxy::evaluate):
3479 (WebCore::KJSProxy::clear):
3480 (WebCore::KJSProxy::initScript):
3481 (WebCore::KJSProxy::clearDocumentWrapper):
3482 (WebCore::KJSProxy::processingUserGesture):
3483 (WebCore::KJSProxy::attachDebugger):
3484 * bindings/js/kjs_proxy.h:
3485 (WebCore::KJSProxy::haveWindowWrapper):
3486 (WebCore::KJSProxy::windowWrapper):
3487 (WebCore::KJSProxy::globalObject):
3488 (WebCore::KJSProxy::initScriptIfNeeded):
3489 Hold onto the wrapper window instead of global object. As a convenience,
3490 keep the globalObject() as a forward to the inner window.
3491 * bindings/objc/DOMUtility.mm:
3492 (KJS::createDOMWrapper):
3493 * bindings/scripts/CodeGeneratorJS.pm:
3495 (WebCore::Document::domWindow):
3497 (WebCore::Document::defaultView):
3498 * loader/FrameLoader.cpp:
3499 (WebCore::FrameLoader::dispatchWindowObjectAvailable):
3500 * page/DOMWindow.idl:
3502 (WebCore::Frame::~Frame):
3503 (WebCore::Frame::pageDestroyed):
3505 2008-04-08 Brady Eidson <beidson@apple.com>
3507 Encourage Windows to rebuild - AGAIN...
3509 * WebCore.vcproj/build-generated-files.sh:
3510 * bindings/scripts/CodeGenerator.pm:
3511 * bindings/scripts/CodeGeneratorJS.pm:
3514 2008-04-08 Brady Eidson <beidson@apple.com>
3516 OMG release builds didn't have this flag Windows build bots I'm so
3517 sorry will you ever forgive me?
3519 (Found by Stephanie, rubberstamped and landed by Brady)
3521 * WebCore.vcproj/WebCore.vcproj: Add ENABLE_DOM_STORAGE for release builds
3523 2008-04-08 Timothy Hatcher <timothy@apple.com>
3525 Fixes a crash in KJS::JSValue::toObject when closing
3526 Safari with Inspector open.
3528 http://bugs.webkit.org/show_bug.cgi?id=18371
3530 Reviewed by Adam Roben.
3532 * page/InspectorController.cpp:
3533 (WebCore::inspectedWindow): NULL check the result of toJSDOMWindow.
3534 Return JSNull if JSDOMWindow is 0.
3535 * page/inspector/ElementsPanel.js:
3536 (ElementsPanel.prototype.reset): NULL check the result of
3537 InspectorController.inspectedWindow.
3539 2008-04-08 Adam Roben <aroben@apple.com>
3543 * webcore-wx.bkl: Removed entry for non-existent file.
3545 2008-04-08 Adam Roben <aroben@apple.com>
3549 * WebCore.pro: Removed entries for non-existent files.
3551 2008-04-08 Brady Eidson <beidson@apple.com>
3553 Rubberstamped by Adam Roben
3555 Touch some files to *strongly* encourage Windows to rebuilt with DOM_STORAGE enabled
3557 * WebCore.vcproj/build-generated-files.sh: