⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



Apr 16, 2008:

10:56 PM Changeset in webkit [31991] by mitz@apple.com
  • 2 edits in trunk/JavaScriptCore

2008-04-15 Srinivas Rao. M Hamse <msrinirao@gmail.com>

Reviewed by Maciej Stachowiak.

  • gcc 3.x build fix
  • kjs/nodes.h: CallerType definition made public for gcc 3.x compilation
9:57 PM Changeset in webkit [31990] by jhoneycutt@apple.com
  • 2 edits
    2 adds in trunk/WebKit/win

Add AccessibilityObject wrapper class to WebKit.

9:56 PM Changeset in webkit [31989] by jhoneycutt@apple.com
  • 4 edits in trunk/WebCore

Fix size_t -> unsigned conversion warnings.

9:56 PM Changeset in webkit [31988] by jhoneycutt@apple.com
  • 3 edits in trunk/WebCore

Add some methods to determine the AccessibilityObject state.

9:55 PM Changeset in webkit [31987] by jhoneycutt@apple.com
  • 4 edits
    1 add in trunk/WebCore

Add AccessibilityObjectWrapper on Windows.

9:54 PM Changeset in webkit [31986] by jhoneycutt@apple.com
  • 4 edits
    1 add in trunk/WebCore

Add AXObjectCache to Windows.

9:54 PM Changeset in webkit [31985] by jhoneycutt@apple.com
  • 2 edits in trunk/WebCore

Fix path to AXObjectCache.h on Windows.

9:41 PM Changeset in webkit [31984] by beidson@apple.com
  • 1 edit in trunk/WebCore/ChangeLog

2008-04-16 Brady Eidson <beidson@apple.com>

Fix ChangeLog typo

9:40 PM Changeset in webkit [31983] by beidson@apple.com
  • 12 edits
    4 adds
    1 delete in trunk/WebCore

2008-04-16 Brady Eidson <beidson@apple.com>

Reviewed by Darin Adler

Merge the StorageAreaClient into the StorageArea class itself as pure virtual methods.
Add "LocalStorageArea" add "SessionStorageArea" implementations, and have SessionStorage
and LocalStorage instantiate the appropriate type of StorageArea object.

This purpose of this change is because while adding the persistent store to LocalStorage,
it became obvious that the client approach wasn't scaling well. Additionally, a StorageArea
backing a local storage area required vastly different data members compared to one backing
a session storage area.

This will be much cleaner going forward.

  • GNUmakefile.am:
  • WebCore.pro:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • WebCoreSources.bkl:
  • storage/LocalStorage.cpp: (WebCore::LocalStorage::storageArea):
  • storage/LocalStorage.h:
  • storage/LocalStorageArea.cpp: Added. (WebCore::LocalStorageArea::LocalStorageArea): (WebCore::LocalStorageArea::itemChanged): (WebCore::LocalStorageArea::itemRemoved): (WebCore::LocalStorageArea::dispatchStorageEvent):
  • storage/LocalStorageArea.h: Added. (WebCore::LocalStorageArea::create):
  • storage/SessionStorage.cpp: (WebCore::SessionStorage::copy): (WebCore::SessionStorage::storageArea):
  • storage/SessionStorage.h:
  • storage/SessionStorageArea.cpp: Added. (WebCore::SessionStorageArea::copy): (WebCore::SessionStorageArea::SessionStorageArea): (WebCore::SessionStorageArea::itemChanged): (WebCore::SessionStorageArea::itemRemoved): (WebCore::SessionStorageArea::dispatchStorageEvent):
  • storage/SessionStorageArea.h: Added. (WebCore::SessionStorageArea::create): (WebCore::SessionStorageArea::page):
  • storage/StorageArea.cpp: (WebCore::StorageArea::StorageArea): (WebCore::StorageArea::setItem): (WebCore::StorageArea::removeItem): (WebCore::StorageArea::storageMap):
  • storage/StorageArea.h:
  • storage/StorageAreaClient.h: Removed.
9:15 PM Changeset in webkit [31982] by hyatt@apple.com
  • 1 edit in trunk/LayoutTests/fast/dom/Window/window-properties-expected.txt

Update window properties test for the new DOM document method.

9:13 PM Changeset in webkit [31981] by hyatt@apple.com
  • 36 edits
    6 adds in trunk

2008-04-16 David Hyatt <hyatt@apple.com>

Add support for the ability to draw directly into CSS images using CanvasRenderingContext2D.

Reviewed by olliej

Added fast/canvas/canvas-bg.html

  • GNUmakefile.am:
  • WebCore.pro:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • WebCoreSources.bkl:
  • css/CSSCanvasValue.cpp: Added. (WebCore::CSSCanvasValue::~CSSCanvasValue): (WebCore::CSSCanvasValue::cssText): (WebCore::CSSCanvasValue::canvasChanged): (WebCore::CSSCanvasValue::canvasResized): (WebCore::CSSCanvasValue::fixedSize): (WebCore::CSSCanvasValue::element): (WebCore::CSSCanvasValue::image):
  • css/CSSCanvasValue.h: Added. (WebCore::CSSCanvasValue::CSSCanvasValue): (WebCore::CSSCanvasValue::isFixedSize): (WebCore::CSSCanvasValue::setName):
  • css/CSSGradientValue.cpp:
  • css/CSSGradientValue.h:
  • css/CSSImageGeneratorValue.cpp: (WebCore::CSSImageGeneratorValue::generatedImage):
  • css/CSSImageGeneratorValue.h: (WebCore::CSSImageGeneratorValue::isFixedSize): (WebCore::CSSImageGeneratorValue::fixedSize):
  • css/CSSParser.cpp: (WebCore::CSSParser::parseContent): (WebCore::CSSParser::parseBackgroundImage): (WebCore::CSSParser::parseBorderImage): (WebCore::CSSParser::parseCanvas):
  • css/CSSParser.h:
  • dom/Document.cpp: (WebCore::Document::getCSSCanvasContext): (WebCore::Document::getCSSCanvasElement):
  • dom/Document.h:
  • dom/Document.idl:
  • html/HTMLCanvasElement.cpp: (WebCore::HTMLCanvasElement::HTMLCanvasElement): (WebCore::HTMLCanvasElement::reset):
  • html/HTMLCanvasElement.h: (WebCore::HTMLCanvasElement::setSize):
  • rendering/RenderBox.cpp: (WebCore::RenderBox::calculateBackgroundSize): (WebCore::RenderBox::imageChanged):
  • rendering/RenderBox.h:
  • rendering/RenderImage.cpp: (WebCore::RenderImage::imageChanged):
  • rendering/RenderImage.h: (WebCore::RenderImage::imagePtr): (WebCore::RenderImage::intrinsicSizeChanged):
  • rendering/RenderImageGeneratedContent.h: (WebCore::RenderImageGeneratedContent::imageSize): (WebCore::RenderImageGeneratedContent::imagePtr):
  • rendering/RenderListMarker.cpp: (WebCore::RenderListMarker::layout): (WebCore::RenderListMarker::imageChanged): (WebCore::RenderListMarker::calcPrefWidths): (WebCore::RenderListMarker::getRelativeMarkerRect):
  • rendering/RenderListMarker.h:
  • rendering/RenderObject.cpp: (WebCore::RenderObject::paintBorderImage): (WebCore::RenderObject::imageChanged):
  • rendering/RenderObject.h: (WebCore::RenderObject::imageChanged):
  • rendering/RenderSVGImage.cpp: (WebCore::RenderSVGImage::imageChanged):
  • rendering/RenderSVGImage.h:
  • rendering/RenderStyle.cpp: (WebCore::StyleCachedImage::imageSize): (WebCore::StyleGeneratedImage::imageSize):
  • rendering/RenderStyle.h: (WebCore::StyleCachedImage::data): (WebCore::StyleGeneratedImage::StyleGeneratedImage): (WebCore::StyleGeneratedImage::data): (WebCore::StyleGeneratedImage::imageHasRelativeWidth): (WebCore::StyleGeneratedImage::imageHasRelativeHeight): (WebCore::StyleGeneratedImage::usesImageContainerSize):
  • rendering/RenderTableCol.cpp: (WebCore::RenderTableCol::imageChanged):
  • rendering/RenderTableCol.h:
  • rendering/RenderTableRow.cpp: (WebCore::RenderTableRow::imageChanged):
  • rendering/RenderTableRow.h:
  • rendering/RenderTableSection.cpp: (WebCore::RenderTableSection::imageChanged):
  • rendering/RenderTableSection.h:
7:02 PM Changeset in webkit [31980] by mjs@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

2008-04-16 Maciej Stachowiak <mjs@apple.com>

Reviewed by Geoff.


  • ensure that activations are kept in a register to protect them from GC


Also renamed OptionalCalleeScopeChain constant to OptionalCalleeActivation, since
that is what is now kept there, and there is no more need to keep the scope chain in
the register file.

  • VM/Machine.cpp: (KJS::initializeCallFrame): (KJS::scopeChainForCall):
  • VM/Machine.h: (KJS::Machine::):
6:47 PM Changeset in webkit [31979] by ggaren@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

2008-04-16 Geoffrey Garen <ggaren@apple.com>

Reviewed by Oliver Hunt.


Made "this" work in program code / global scope.


The machine can initialize "this" prior to execution because it knows
that, for program code, "this" is always stored in lr1.

  • VM/Machine.cpp: (KJS::Machine::execute):
  • VM/Machine.h: (KJS::Machine::):
  • kjs/interpreter.cpp: (KJS::Interpreter::evaluate):
6:27 PM Changeset in webkit [31978] by andersca@apple.com
  • 4 edits in trunk/WebCore

2008-04-16 Anders Carlsson <andersca@apple.com>

Reviewed by Darin.

Add manifest parser.

  • loader/appcache/ManifestParser.cpp: (WebCore::): (WebCore::parseManifest):
  • loader/appcache/ManifestParser.h:
  • platform/text/CharacterNames.h:
6:23 PM Changeset in webkit [31977] by Darin Adler
  • 3 edits
    2 adds in trunk

WebCore:

2008-04-16 Darin Adler <Darin Adler>

Reviewed by Mitz.

  • fix <rdar://problem/5858617> REGRESSION (r21452-Safari 3.1): Safari does not find words containing ß (German letter sharp-s)

Test: fast/text/find-case-folding.html

  • platform/text/StringImpl.cpp: (WebCore::StringImpl::foldCase): Pass the folded length to foldCase rather than the original string length. Without this, we get an error code every time.

LayoutTests:

2008-04-16 Darin Adler <Darin Adler>

Earlier version reviewed by Mitz.

  • test for <rdar://problem/5858617> REGRESSION (r21452-Safari 3.1): Safari does not find words containing ß (German letter sharp-s)
  • fast/text/find-case-folding-expected.txt: Added.
  • fast/text/find-case-folding.html: Added.
5:51 PM Changeset in webkit [31976] by andersca@apple.com
  • 2 edits in trunk/WebCore

2008-04-16 Anders Carlsson <andersca@apple.com>

Fix build.


  • loader/appcache/ApplicationCache.cpp: (WebCore::ApplicationCache::ApplicationCache): (WebCore::ApplicationCache::setManifestResource): (WebCore::ApplicationCache::addResource):
5:50 PM Changeset in webkit [31975] by andersca@apple.com
  • 3 edits in trunk/WebCore

2008-04-16 Anders Carlsson <andersca@apple.com>

Reviewed by Darin.

Add new protocolHostAndPortAreEqual function.


  • platform/KURL.cpp: (WebCore::KURL::host): (WebCore::KURL::setHost): (WebCore::KURL::setHostAndPort): (WebCore::protocolHostAndPortAreEqual):
  • platform/KURL.h: (WebCore::KURL::hostStart):
5:22 PM Changeset in webkit [31974] by andersca@apple.com
  • 3 edits in trunk/WebCore

2008-04-16 Anders Carlsson <andersca@apple.com>

Reviewed by Sam.


Fix some style nits.


  • loader/appcache/ApplicationCache.cpp: (WebCore::ApplicationCache::ApplicationCache): (WebCore::ApplicationCache::setManifestResource): (WebCore::ApplicationCache::addResource): (WebCore::ApplicationCache::removeResource): (WebCore::ApplicationCache::dump):
  • loader/appcache/ApplicationCacheGroup.h:
5:17 PM Changeset in webkit [31973] by andersca@apple.com
  • 4 edits in trunk/WebCore

2008-04-16 Anders Carlsson <andersca@apple.com>

Reviewed by Brady and Sam.

Add ApplicationCache implementation. Stub out ApplicationCacheGroup methods
needed by ApplicationCache.


  • loader/appcache/ApplicationCache.cpp: (WebCore::ApplicationCache::ApplicationCache): (WebCore::ApplicationCache::~ApplicationCache): (WebCore::ApplicationCache::setManifestResource): (WebCore::ApplicationCache::addResource): (WebCore::ApplicationCache::removeResource): (WebCore::ApplicationCache::resourceForURL): (WebCore::ApplicationCache::resourceForRequest): (WebCore::ApplicationCache::numDynamicEntries): (WebCore::ApplicationCache::dynamicEntry): (WebCore::ApplicationCache::addDynamicEntry): (WebCore::ApplicationCache::removeDynamicEntry): (WebCore::ApplicationCache::setOnlineWhitelist): (WebCore::ApplicationCache::isURLInOnlineWhitelist): (WebCore::ApplicationCache::dump):
  • loader/appcache/ApplicationCache.h: (WebCore::ApplicationCache::create): (WebCore::ApplicationCache::manifestResource): (WebCore::ApplicationCache::group): (WebCore::ApplicationCache::begin): (WebCore::ApplicationCache::end):
  • loader/appcache/ApplicationCacheGroup.h: (WebCore::ApplicationCacheGroup::manifestURL): (WebCore::ApplicationCacheGroup::cacheDestroyed):
4:34 PM Changeset in webkit [31972] by Adam Roben
  • 5 edits in trunk/WebCore

Fix Bug 18505: REGRESSION: Search is disabled and not functional

<https://bugs.webkit.org/show_bug.cgi?id=18505>

Reviewed by Tim Hatcher.

  • page/inspector/ResourcesPanel.js: (WebInspector.ResourcesPanel.sourceFrameForResource): Added.
  • page/inspector/inspector.css: Added back rules for the search field that were removed in r31736.
  • page/inspector/inspector.html:
    • Removed the disabled attribute from the search field
    • Added back the #searchResults and #searchResultsResizer divs which were removed in r31736
  • page/inspector/inspector.js: (WebInspector.set showingSearchResults): Updated for class rename panels -> main-panels. (WebInspector.loaded): Added back the mousedown event listener for the search results resizer that was removed in r31736. (WebInspector.searchResultsResizerDrag): Updated for class rename panels -> main-panels. (WebInspector.performSearch):
    • Changed to use sourceFrameForResource
    • Changed to use showResource
    • Changed to save/restore the focused element around the setting of the current panel
    • Changed to get the source document from the match range instead of by crawling back up to the source view
    • Changed to bind the onselect handlers to this so that we can access the Elements/Resources panels
4:25 PM Changeset in webkit [31971] by beidson@apple.com
  • 25 edits in trunk

JavaScriptCore:

2008-04-16 Brady Eidson <beidson@apple.com>

Reviewed by Sam Weinig

Change ThreadSafeShared to act like RefCounted by starting out with a single ref by default

  • wtf/Threading.h: (WTF::ThreadSafeShared::ThreadSafeShared):

WebCore:

2008-04-16 Brady Eidson <beidson@apple.com>

Reviewed by Sam Weinig

Changing ThreadSafeShared to start with a ref count of 1, so updating all users to
adoptRef() that initial reference.

  • bindings/js/JSCustomSQLStatementCallback.h: (WebCore::JSCustomSQLStatementCallback::create):
  • bindings/js/JSCustomSQLStatementErrorCallback.h: (WebCore::JSCustomSQLStatementErrorCallback::create):
  • bindings/js/JSCustomSQLTransactionCallback.h: (WebCore::JSCustomSQLTransactionCallback::create):
  • bindings/js/JSCustomSQLTransactionErrorCallback.h: (WebCore::JSCustomSQLTransactionErrorCallback::create):
  • bindings/js/JSDatabaseCustom.cpp: (WebCore::JSDatabase::changeVersion): (WebCore::JSDatabase::transaction):
  • bindings/js/JSSQLTransactionCustom.cpp: (WebCore::JSSQLTransaction::executeSql):
  • dom/Document.cpp: (WebCore::Document::databaseThread):
  • platform/SecurityOrigin.cpp: (WebCore::SecurityOrigin::create):
  • platform/sql/SQLiteAuthorizer.h: (WebCore::SQLiteAuthorizer::create): (WebCore::SQLiteAuthorizer::SQLiteAuthorizer):
  • storage/ChangeVersionWrapper.cpp: (WebCore::ChangeVersionWrapper::performPreflight): (WebCore::ChangeVersionWrapper::performPostflight):
  • storage/ChangeVersionWrapper.h: (WebCore::ChangeVersionWrapper::create):
  • storage/Database.cpp: (WebCore::Database::openAndVerifyVersion): (WebCore::Database::markAsDeletedAndClose): (WebCore::Database::changeVersion): (WebCore::Database::transaction): (WebCore::Database::scheduleTransaction): (WebCore::Database::scheduleTransactionStep): (WebCore::Database::tableNames):
  • storage/DatabaseAuthorizer.h: (WebCore::DatabaseAuthorizer::create):
  • storage/DatabaseTask.h: (WebCore::DatabaseOpenTask::create): (WebCore::DatabaseCloseTask::create): (WebCore::DatabaseTransactionTask::create): (WebCore::DatabaseTableNamesTask::create):
  • storage/DatabaseThread.cpp: (WebCore::DatabaseThread::scheduleTask): Change to take a PassRefPtr instead of raw (WebCore::DatabaseThread::scheduleImmediateTask): Ditto
  • storage/DatabaseThread.h: (WebCore::DatabaseThread::create):
  • storage/SQLError.h: (WebCore::SQLError::create): (WebCore::SQLError::SQLError):
  • storage/SQLResultSet.h: (WebCore::SQLResultSet::create):
  • storage/SQLStatement.cpp: (WebCore::SQLStatement::create): (WebCore::SQLStatement::execute): (WebCore::SQLStatement::setDatabaseDeletedError): (WebCore::SQLStatement::setVersionMismatchedError): (WebCore::SQLStatement::setFailureDueToQuota):
  • storage/SQLStatement.h:
  • storage/SQLTransaction.cpp: (WebCore::SQLTransaction::create): (WebCore::SQLTransaction::executeSQL): (WebCore::SQLTransaction::openTransactionAndPreflight): (WebCore::SQLTransaction::deliverTransactionCallback): (WebCore::SQLTransaction::handleCurrentStatementError): (WebCore::SQLTransaction::deliverStatementCallback): (WebCore::SQLTransaction::postflightAndCommit):
  • storage/SQLTransaction.h:
4:23 PM Changeset in webkit [31970] by andersca@apple.com
  • 3 edits in trunk/WebCore

2008-04-16 Anders Carlsson <andersca@apple.com>

Reviewed by Adam and Brady.


Add implementation of ApplicationCacheResource.


  • loader/appcache/ApplicationCacheResource.cpp: (WebCore::ApplicationCacheResource::ApplicationCacheResource): (WebCore::ApplicationCacheResource::dumpType):
  • loader/appcache/ApplicationCacheResource.h: (WebCore::ApplicationCacheResource::): (WebCore::ApplicationCacheResource::create): (WebCore::ApplicationCacheResource::type): (WebCore::ApplicationCacheResource::addType):
3:40 PM Changeset in webkit [31969] by ggaren@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

2008-04-16 Geoffrey Garen <ggaren@apple.com>

Reviewed by Oliver Hunt.


Fixed a codegen bug when returning from inside a dynamic scope (a with
or catch block): we need to pop any dynamic scope(s) that have been
added so op_ret can find the activation object at the top of the scope
chain.

  • kjs/nodes.cpp: (KJS::ReturnNode::emitCode): If we're returning from inside a dynamic scope, emit a jmp_scopes to take care of popping any dynamic scope(s) and then branching to the return instruction.
3:25 PM Changeset in webkit [31968] by mjs@apple.com
  • 5 edits in branches/squirrelfish/JavaScriptCore

2008-04-16 Maciej Stachowiak <mjs@apple.com>

Reviewed by Geoff.


  • document the add and get_prop_id opcodes


In addition to adding documentation in comments, I changed
references to register IDs or indices relating to these opcodes to
have meaningful names instead of r0 r1 r2.

  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitAdd):
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • kjs/nodes.cpp: (KJS::DotAccessorNode::emitCode): (KJS::FunctionCallDotNode::emitCode): (KJS::PostIncDotNode::emitCode): (KJS::PostDecDotNode::emitCode): (KJS::PreIncDotNode::emitCode): (KJS::PreDecDotNode::emitCode): (KJS::AddNode::emitCode): (KJS::ReadModifyDotNode::emitCode):
2:47 PM Changeset in webkit [31967] by timothy@apple.com
  • 4 edits in trunk/WebCore

Fixes an issue where the source for a resource that had errors would
not be shown because the view was created before the resource load
finished. The right view is now created, even if the resource isn't
finished. The SourceView just makes sure to not load the source until
the resource is finished. Only if the category changes, does the view
need to be recreated.

Reviewed by Adam Roben.

  • page/inspector/Resource.js:

(WebInspector.Resource.prototype.set category): Call recreateViewForResourceIfNeeded.

  • page/inspector/ResourcesPanel.js:

(WebInspector.ResourcesPanel.prototype.recreateViewForResourceIfNeeded):
Added. Tries to make a new view, if the view is the same prototype of the
previous view, return early. If they differ, close and detach the old view
and associate the resource with the new view. Calling updateErrorsAndWarnings
is needed, because the errors and warnings that might have been added to the
previous view will be lost, so make the tree element match.
(WebInspector.Resource.prototype._createResourceView): Always create a view
that matches the resource category. Ignore the loading and failed status.

  • page/inspector/SourceView.js:

(WebInspector.SourceView.prototype.setupSourceFrameIfNeeded): Don't setup the
frame if the resource hasn't finished or if the load failed.

2:46 PM Changeset in webkit [31966] by timothy@apple.com
  • 2 edits in trunk/WebCore

Adds a console formatter for Error objects. So typing a expression in the
console that ends in an exception will print meaningful info. Also calling
console.{log,error,warn,info} with an error object will output nicely.

Reviewed by Adam Roben.

  • page/inspector/Console.js:

(WebInspector.Console.prototype._formaterror): Added. Formats an error
object by showing it like other exceptions, with a clickable file URL.

2:46 PM Changeset in webkit [31965] by timothy@apple.com
  • 2 edits in trunk/WebCore

Refactors code that updates the errors and warnings count in the
resources sidebar so other functions can easily trigger updates.

Reviewed by Adam Roben.

  • page/inspector/ResourcesPanel.js:

(WebInspector.ResourcesPanel.prototype.addMessageToResource): Call updateErrorsAndWarnings.
Removes code that updates the bubbleText and class names.
(WebInspector.ResourcesPanel.prototype.clearMessages): Ditto.
(WebInspector.ResourceSidebarTreeElement.prototype.updateErrorsAndWarnings):
Added. Updates the bubbleText and adds or removes the class names
depending on if the values are zero.

2:41 PM Changeset in webkit [31964] by Antti Koivisto
  • 6 edits
    4 adds in trunk

WebCore:

2008-04-16 Antti Koivisto <Antti Koivisto>

Reviewed by Alexey.


Fix <rdar://problem/5863728>
REGRESSION: Garbage character shown in temperatures in the Weather widget (encoding issue with degree symbol)


Parse the encoding attribute in PreloadScanner.

Test: fast/encoding/script-preload-encoding.html

  • html/PreloadScanner.cpp: (WebCore::PreloadScanner::processAttribute): (WebCore::PreloadScanner::emitTag): (WebCore::PreloadScanner::emitCSSRule):
  • html/PreloadScanner.h:
  • loader/DocLoader.cpp: (WebCore::DocLoader::preload):
  • loader/DocLoader.h:

LayoutTests:

2008-04-16 Antti Koivisto <Antti Koivisto>

Reviewed by Alexey.


Test for <rdar://problem/5863728>
REGRESSION: Garbage character shown in temperatures in the Weather widget (encoding issue with degree symbol)

  • fast/encoding/resources/utf-8.css: Added.
  • fast/encoding/resources/utf-8.js: Added.
  • fast/encoding/preload-encoding-expected.txt: Added.
  • fast/encoding/preload-encoding.html: Added.
2:03 PM Changeset in webkit [31963] by andersca@apple.com
  • 15 edits
    1 add in trunk/WebCore

2008-04-16 Anders Carlsson <andersca@apple.com>

Reviewed by Adam.

Generate the DOMApplicationCache JS wrapper, add JSDOMApplicationCacheCustom.cpp and
fix typos in the #if line.


  • DerivedSources.make:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMApplicationCacheCustom.cpp: Added.
  • loader/appcache/ApplicationCache.cpp:
  • loader/appcache/ApplicationCache.h:
  • loader/appcache/ApplicationCacheGroup.cpp:
  • loader/appcache/ApplicationCacheGroup.h:
  • loader/appcache/ApplicationCacheResource.cpp:
  • loader/appcache/ApplicationCacheResource.h:
  • loader/appcache/DOMApplicationCache.cpp:
  • loader/appcache/DOMApplicationCache.h:
  • loader/appcache/DOMApplicationCache.idl:
  • loader/appcache/ManifestParser.cpp:
  • loader/appcache/ManifestParser.h:
1:58 PM Changeset in webkit [31962] by weinig@apple.com
  • 16 edits in trunk

JavaScriptCore:

2008-04-16 Sam Weinig <sam@webkit.org>

Reviewed by Geoffrey Garen.

  • To keep the behavior of the WebKit and JavaScriptCore API's the same, we need to hide the fact that the global object and the window object are no longer the same thing, and the the global object now changes on navigations. To do this, only the wrapper should ever be exposed. This fixes the two remaining spots where the internal global object is exposed, the windowScriptObject returned from [WebFrame windowObject] and the object return by calling JSContextGetGlobalObject on [WebFrame globalContext].
  • API/JSContextRef.cpp: (JSContextGetGlobalObject): This is a bit of a hack, this returns the "this" representation of the globalObject which will be the WrapperWindow for WebCore and the globalObject for non-WebCore.
  • API/JSObjectRef.cpp: (JSObjectSetProperty): Call the new putWithAttributes method instead of relying on lower-level calls. This is needed so that the window wrapper can forward the calls.
  • JavaScriptCore.exp:
  • kjs/Activation.h:
  • kjs/JSGlobalObject.cpp: (KJS::JSGlobalObject::putWithAttributes):
  • kjs/JSGlobalObject.h:
  • kjs/JSVariableObject.h: (KJS::JSVariableObject::symbolTablePutWithAttributes):
  • kjs/function.cpp: (KJS::ActivationImp::putWithAttributes):
  • kjs/nodes.cpp: (KJS::ConstDeclNode::handleSlowCase): (KJS::ConstDeclNode::evaluateSingle): (KJS::EvalNode::processDeclarations):
  • kjs/object.cpp: (KJS::JSObject::putWithAttributes):
  • kjs/object.h: Rename initializeVariable to putWithAttributes and move it down to JSObject so it can be used for JSObjectSetProperty.

WebCore:

2008-04-16 Sam Weinig <sam@webkit.org>

Reviewed by Geoffrey Garen.

  • To keep the behavior of the WebKit and JavaScriptCore API's the same, we need to hide the fact that the global object and the window object are no longer the same thing, and the the global object now changes on navigations. To do this, only the wrapper should ever be exposed. This fixes the two remaining spots where the internal global object is exposed, the windowScriptObject returned from [WebFrame windowObject] and the object return by calling JSContextGetGlobalObject on [WebFrame globalContext]
  • bindings/js/JSDOMWindowWrapper.cpp: (WebCore::JSDOMWindowWrapper::putWithAttributes):
  • bindings/js/JSDOMWindowWrapper.h: Forward this new method so that JSObjectSetProperty doesn't set properties on the wrapper.
  • page/mac/FrameMac.mm: (WebCore::Frame::windowScriptObject): Return the wrapper instead of the global object.
1:53 PM Changeset in webkit [31961] by hyatt@apple.com
  • 13 edits in trunk/WebCore

2008-04-16 David Hyatt <hyatt@apple.com>

Eliminate the paintBuffer and drawImage(ImageBuffer*) methods from GraphicsContext* in favor of just
snagging an Image* from the ImageBuffer and drawing that instead.

Enhance canvas with a CanvasObserver so that notifications of dirtying or resizing can be tracked by
a consumer.

Reviewed by olliej

  • html/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::drawImage):
  • html/HTMLCanvasElement.cpp: (WebCore::HTMLCanvasElement::HTMLCanvasElement): (WebCore::HTMLCanvasElement::willDraw): (WebCore::HTMLCanvasElement::reset): (WebCore::HTMLCanvasElement::paint):
  • html/HTMLCanvasElement.h: (WebCore::CanvasObserver::~CanvasObserver): (WebCore::HTMLCanvasElement::setSize): (WebCore::HTMLCanvasElement::setObserver):
  • platform/graphics/GraphicsContext.cpp: (WebCore::GraphicsContext::drawImage): (WebCore::GraphicsContext::drawTiledImage):
  • platform/graphics/GraphicsContext.h:
  • platform/graphics/ImageBuffer.h: (WebCore::ImageBuffer::clearImage):
  • platform/graphics/cairo/GraphicsContextCairo.cpp:
  • platform/graphics/cg/GraphicsContextCG.cpp:
  • platform/graphics/cg/ImageCG.cpp: (WebCore::BitmapImage::draw): (WebCore::Image::drawPattern):
  • platform/graphics/cg/ImageSourceCG.cpp: (WebCore::ImageSource::createFrameAtIndex):
  • platform/graphics/qt/GraphicsContextQt.cpp:
  • platform/graphics/wx/GraphicsContextWx.cpp:
1:32 PM Changeset in webkit [31960] by sfalken@apple.com
  • 2 edits in trunk/WebCore

2008-04-16 Steve Falkenburg <sfalken@apple.com>

Improve timer latency/resolution.


The primary timing mechanism is now CreateTimerQueueTimer, with a PostMessage from
the callback proc. This event will be delivered sooner than if we used SetTimer(),
since it is higher priority than other messages.


If there is an input message pending, we'll use we SetTimer() based timers to avoid
starving user input.

Don't call PostMessage immediately on all timers < 10ms. Only call immediately if
timer is already expired. This avoids the case where no timers would be processed,
causing the timer to be re-posted via the slower SetTimer method.

Don't call PostMessage immediately if there's a pending WM_PAINT, since
we don't want to starve all paints when bombarded with a continuous stream of low
duration timers.

Removed reentrancy check, since we're now looking for specific starvation cases,
and will typically defer non-expired timers through reateTimerQueueTimer.

The reason Windows wouldn't starve paints in favor of timers with the old code:
When we went to reset the timer when it fired, the timer reset code treated this as a
reentrant timer, causing us to hit the slow SetTimer code rather than calling PostMessage,
even for timers expiring in < 10ms. I corrected that, exposing the paint starvation problem.

Use timeBeginPeriod/timeEndPeriod to improve resolution of system timers.
Limit this resolution change to within 20ms of the last high resolution timer request.

Corrected GetQueueStatus to check for specific input (and paint) messages rather than
checking QS_ALLINPUT. Contrary to its name, QS_ALLINPUT actually indicates interest
in ALL queued messages, not just input messages.


Fix SetTimer/KillTimer calls to pass our window handle.

Reviewed by Brady.

  • platform/win/SharedTimerWin.cpp: (WebCore::): (WebCore::TimerWindowWndProc): (WebCore::queueTimerProc): (WebCore::setSharedTimerFireTime): (WebCore::stopSharedTimer):
1:22 PM Changeset in webkit [31959] by Adam Roben
  • 2 edits in trunk/WebCore

Fix console-log-formatting to truly test formatting an undefined value

Exceptions thrown by the test will also now be shown as errors.

Reviewed by Tim Hatcher.

  • manual-tests/inspector/console-log-formatting.html: (test): Use console.error to report exceptions. (runTests): Use window.noSuchVariable instead of just noSuchVariable to avoid an exception.
12:47 PM Changeset in webkit [31958] by jchaffraix@webkit.org
  • 2 edits in trunk/WebCore

2008-04-16 Anatoli Papirovski <apapirovski@mac.com>

Reviewed by David.

Optimized the calculation of background-size.

  • rendering/RenderBox.cpp: (WebCore::RenderBox::calculateBackgroundSize):
12:34 PM Changeset in webkit [31957] by Adam Roben
  • 2 edits
    2 adds in trunk/WebCore

Fix Bug 17228: console.{log,warn,info,error} should support format strings, variable arguments

<https://bugs.webkit.org/show_bug.cgi?id=17228>
<rdar://problem/5732828>

Reviewed by Tim Hatcher.

Test: manual-tests/inspector/console-log-formatting.html

  • page/inspector/Console.js: (WebInspector.ConsoleMessage): Pass any extra arguments down to _format. (WebInspector.ConsoleMessage._format): This method constructs this.formattedMessage. We treat the first parameter as a format string. Any parameters that have not been used after substituting into the format string are concatenated together, separated by spaces. (WebInspector.ConsoleMessage.toMessageElement): Updated to use this.formattedMessage. (WebInspector.ConsoleMessage.toString): Ditto.
12:34 PM Changeset in webkit [31956] by Adam Roben
  • 2 edits in trunk/WebCore

Make String.format return an array of unused substitutions

String.format now returns an object with two properties:
formattedResult and unusedSubstitutions.

Reviewed by Tim Hatcher.

  • page/inspector/utilities.js: (String.vsprintf): Updated for changes to String.format. We throw away the array of unused substitutions. (String.format): Changed to keep track of which substitutions are used when formatting. We then return both the formatted result and the array of unused substitutions.
12:34 PM Changeset in webkit [31955] by Adam Roben
  • 2 edits in trunk/WebCore

Generalize String.format some more

String.format now takes an initial value and an append function which
it uses to build the result. Each time a token is processed,
append(valueSoFar, newValue) is called.

Reviewed by Tim Hatcher.

  • page/inspector/utilities.js: (String.vsprintf): Pass the empty string for the initial value, and a function that concatenates two strings as the append function. (String.format): Use initialValue and append to build the result instead of only working with strings.
12:20 PM Changeset in webkit [31954] by Adam Roben
  • 2 edits in trunk/WebCore

Add String.format

String.format is a more generic form of String.vsprintf that takes a
set of formatter functions, one for each supported format specifier.
Each formatter function is passed the relevant token and substitution
value, and returns the formatted result.

Reviewed by Tim Hatcher.

  • page/inspector/utilities.js: (String.standardFormatters): Added. (String.vsprintf): Changed to call through to String.format. (String.format): Added. Most of the code came from String.vsprintf, except that we use the passed-in formatters to format the substitutions rather than hard-coding how to handle each format specifier.
12:19 PM Changeset in webkit [31953] by Adam Roben
  • 2 edits in trunk/WebCore

Refactor String.vsprintf to separate tokenizing and substituting

This will eventually be useful for the various console methods that
take a format string.

Reviewed by Tim Hatcher.

  • page/inspector/utilities.js: (String.tokenizeFormatString): Added. This uses the format parsing code from String.vsprintf but just returns an array of "string" and "specifier" tokens. (String.vsprintf): Now calls String.tokenizeFormatString and processes the tokens one at a time.
12:19 PM Changeset in webkit [31952] by Adam Roben
  • 6 edits in trunk/WebCore

Pass all arguments to console.{log,warn,info,error} into the Inspector's JS

Part of Bug 17228: console.{log,warn,info,error} should support format
strings, variable arguments
<http://bugs.webkit.org/show_bug.cgi?id=17228>
<rdar://problem/5732828>

We don't use the extra arguments yet.

Reviewed by Tim Hatcher.

  • page/Console.cpp: (WebCore::Console::error): Pass the arguments list to InspectorController. (WebCore::Console::info): Ditto. (WebCore::Console::log): Ditto. (WebCore::Console::warn): Ditto.
  • page/InspectorController.cpp: (WebCore::ConsoleMessage::ConsoleMessage): Added a new constructor that takes an ExecState and a List instead of a String. We wrap and store the JSValues from the List in a Vector<ProtectedPtr<JSValue> >. (WebCore::InspectorController::addMessageToConsole): Added an overload that takes an ExecState and a List. (WebCore::InspectorController::addConsoleMessage): Moved code here from addMessageToConsole. Both overloads of addMessageToConsole now call this helper method. (WebCore::InspectorController::addScriptConsoleMessage): Updated for the new parameter order of WebInspector.ConsoleMessage. If the ConsoleMessage has a non-empty wrappedArguments Vector, we use that instead of the ConsoleMessage's message String.
  • page/InspectorController.h:
  • page/inspector/Console.js: (WebInspector.ConsoleMessage): Removed the explicit message parameter. We now get the message from the unnamed 5th parameter.
  • page/inspector/Resource.js: Updated for the change to WebInspector.ConsoleMessage's parameter order.
12:19 PM Changeset in webkit [31951] by Adam Roben
  • 26 edits in trunk/WebCore

Change calls to Chrome::addMessageToConsole to use Console::addMessage

Part of Bug 17228: console.{log,warn,info,error} should support format
strings, variable arguments
<http://bugs.webkit.org/show_bug.cgi?id=17228>
<rdar://problem/5732828>

Console now takes care of calling ChromeClient::addMessageToConsole
for the appropriate messages (i.e., just messages from JavaScript). If
you ever want to add a message to the console, Console is the place to
do it.

Reviewed by Darin Adler.

  • WebCore.xcodeproj/project.pbxproj: Mark Console.h Private.
  • page/Chrome.cpp: Removed addMessageToConsole
  • page/Chrome.h: Moved MessageSource/MessageLevel to Console.h.
  • page/Console.cpp: (WebCore::Console::addMessage): Added. Calls ChromeClient::addMessageToConsole for JS messages, and calls InspectorController::addMessageToConsole for all messages. (WebCore::Console::error): Changed to call directly to InspectorController in addition to ChromeClient. (WebCore::Console::info): Ditto. (WebCore::Console::log): Ditto. (WebCore::Console::warn): Ditto.
  • page/Console.h: Added MessageSource/MessageLevel enums from Chrome.h.
12:18 PM Changeset in webkit [31950] by Adam Roben
  • 9 edits
    2 adds in trunk/WebCore

Pass JSConsole's arguments unmodified to Console

Part of Bug 17228: console.{log,warn,info,error} should support format
strings, variable arguments
<http://bugs.webkit.org/show_bug.cgi?id=17228>
<rdar://problem/5732828>

All of JSConsole's methods are now custom, so that we can pass the
arguments unmodified to Console. Console now handles calling
toString() on the first argument. Later it will pass the arguments off
to InspectorController.

There should be no behavioral changes caused by this patch.

Reviewed by Darin Adler.

  • ForwardingHeaders/kjs/list.h: Added.
  • GNUmakefile.am: Added JSConsoleCustom.cpp to the project.
  • WebCore.pro: Ditto.
  • WebCore.vcproj/WebCore.vcproj: Ditto.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • WebCoreSources.bkl: Ditto.
  • bindings/js/JSConsoleCustom.cpp: Added. (WebCore::JSConsole::error): (WebCore::JSConsole::info): (WebCore::JSConsole::log): (WebCore::JSConsole::warn):
  • page/Console.cpp: Changed all methods to take an ExecState* and a const List&. The first item in the List is toString()ed and passed to Chrome. (WebCore::Console::error): (WebCore::Console::info): (WebCore::Console::log): (WebCore::Console::warn):
  • page/Console.h:
  • page/Console.idl:
12:08 PM Changeset in webkit [31949] by kmccullough@apple.com
  • 10 edits
    5 adds in trunk/JavaScriptCore

2008-04-16 Kevin McCullough <kmccullough@apple.com>

Reviewed by Sam and Geoff.

-<rdar://problem/5770054> JavaScript profiler (10928)
Inital profiler prototype

  • GNUmakefile.am: Added new files to project
  • JavaScriptCore.pri: Ditto
  • JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Ditto
  • JavaScriptCore.xcodeproj/project.pbxproj: Ditto
  • JavaScriptCoreSources.bkl: Ditto
  • kjs/config.h: Put compiling flag in here.
  • kjs/function.cpp: Instrument calling the function eval(). (KJS::eval):
  • kjs/interpreter.cpp: Instrument evaluating global scopes. (KJS::Interpreter::evaluate):
  • kjs/object.cpp: Instrument JS function calls. (KJS::JSObject::call):
  • profiler: Added.
  • profiler/FunctionCallProfile.cpp: Added. (KJS::FunctionCallProfile::FunctionCallProfile): (KJS::FunctionCallProfile::~FunctionCallProfile): (KJS::FunctionCallProfile::willExecute): Call right before the JS function or executing context is executed to start the profiler's timer. (KJS::FunctionCallProfile::didExecute): Call right after the JS function or executing context is executed to stop the profiler's timer. (KJS::FunctionCallProfile::addChild): Add a child to the current FunctionCallProfile if it isn't already a child of the current FunctionalCallProfile. (KJS::FunctionCallProfile::findChild): Return the child that matches the given name if there is one. (KJS::FunctionCallProfile::printDataSampleStyle): Print the current profiled information in a format that matches sample's output.
  • profiler/FunctionCallProfile.h: Added. (KJS::FunctionCallProfile::FunctionCallProfile): (KJS::FunctionCallProfile::~FunctionCallProfile): (KJS::FunctionCallProfile::functionName): (KJS::FunctionCallProfile::microSecs):
  • profiler/Profiler.cpp: Added. (KJS::Profiler::profiler): (KJS::Profiler::sharedProfiler): Return global singleton (may change due to multi-threading concerns) (KJS::Profiler::startProfiling): Don't start collecting profiling information until the user starts the profiler. Also don't clear old prfiled data until the profiler is restarted. (KJS::Profiler::stopProfiling): Stop collecting profile information. (KJS::Profiler::willExecute): Same as above. (KJS::Profiler::didExecute): Same as above. (KJS::Profiler::insertStackNamesInTree): Follow the stack of the given names and if a sub-stack is not in the current tree, add it. (KJS::Profiler::getStackNames): Get the names from the different passed in parameters and order them as a stack. (KJS::Profiler::getFunctionName): Get the function name from the given parameter. (KJS::Profiler::printDataSampleStyle): Print the current profiled information in a format that matches sample's output. (KJS::Profiler::debugLog):
  • profiler/Profiler.h: Added. (KJS::Profiler::Profiler):
11:41 AM Changeset in webkit [31948] by weinig@apple.com
  • 10 edits in trunk

JavaScriptCore:

2008-04-16 Sam Weinig <sam@webkit.org>

Reviewed by Darin Adler.

  • Remove kjs_ prefix from strtod, dtoa, and freedtoa and put it in the KJS namespace.
  • Make strtod, dtoa, and freedtoa c++ functions instead of extern "C".
  • Remove mode switching from dtoa. ~2% improvement on test 26.
  • Removes all unnecessary #defines from dtoa code.
  • JavaScriptCore.exp:
  • kjs/dtoa.cpp: (KJS::ulp): (KJS::b2d): (KJS::d2b): (KJS::ratio): (KJS::): (KJS::strtod): (KJS::freedtoa): (KJS::dtoa):
  • kjs/dtoa.h:
  • kjs/function.cpp: (KJS::parseInt):
  • kjs/lexer.cpp: (KJS::Lexer::lex):
  • kjs/number_object.cpp: (KJS::integer_part_noexp): (KJS::numberProtoFuncToExponential):
  • kjs/ustring.cpp: (KJS::UString::from): (KJS::UString::toDouble):

WebCore:

2008-04-16 Sam Weinig <sam@webkit.org>

Reviewed by Darin Adler.

Rename kjs_strtod to KJS::strtod.

  • platform/text/String.cpp: (WebCore::charactersToDouble):
10:30 AM Changeset in webkit [31947] by ap@webkit.org
  • 3 edits
    4 adds in trunk

Reviewed by Adam.

http://bugs.webkit.org/show_bug.cgi?id=18259
XML+XSLT pages in iframe contains document.location of a parent window

Test: fast/xsl/subframe-location.html

  • xml/XSLTProcessor.cpp: (WebCore::XSLTProcessor::createDocumentFromSource): Set resulting document URL before opening it, so that the document loader picks a correct URL, too.
10:23 AM Changeset in webkit [31946] by ap@webkit.org
  • 2 edits in trunk/JavaScriptCore

Reviewed by Darin.

Get rid of static execForCompareByStringForQSort in array_instance.cpp.

No change on SunSpider, CelticKane or iBench JavaScript.

  • kjs/array_instance.cpp: (KJS::ArraySortComparator::ArraySortComparator): (KJS::ArraySortComparator::operator()): (KJS::ArrayInstance::sort): Switch slow case to std::sort, so that ExecState can be passed in a comparator.
8:30 AM Changeset in webkit [31945] by mitz@apple.com
  • 2 edits in trunk/WebCore

Rubber-stamped by John Sullivan.

  • remove unreachable code which was added in r8802
  • rendering/RenderText.cpp: (WebCore::RenderText::caretRect):
8:26 AM Changeset in webkit [31944] by ap@webkit.org
  • 8 edits in trunk/JavaScriptCore

Reviewed by Adam Roben.

MSVC build fix.

  • kjs/CommonIdentifiers.cpp:
  • kjs/CommonIdentifiers.h:
  • kjs/Parser.cpp:
  • kjs/Parser.h:
  • kjs/identifier.cpp:
  • kjs/lexer.h:
  • wtf/ThreadSpecific.h:
7:31 AM Changeset in webkit [31943] by ap@webkit.org
  • 3 edits in trunk/JavaScriptCore

Build fix.

  • kjs/date_object.cpp:
  • kjs/date_object.h: Don't include DateMath.h from date_object.h, as the latter is used from WebCore, while where the former is not available.
6:49 AM Changeset in webkit [31942] by timothy@apple.com
  • 3 edits
    1 add in trunk/WebCore

Adds a script resource icon. Update the CSS icon to better match the script icon.

https://bugs.webkit.org/show_bug.cgi?id=18499

Rubber-stamped by Adele Peterson.

  • page/inspector/Images/resourceCSSIcon.png: Updated.
  • page/inspector/Images/resourceJSIcon.png: Added.
  • page/inspector/inspector.css: Changed the script icon rule to reference the new image.
5:51 AM Changeset in webkit [31941] by zecke@webkit.org
  • 2 edits in trunk/JavaScriptCore

2008-04-16 Holger Hans Peter Freyther <zecke@selfish.org>

Unreviewed build fix for MSVC. It does not want to have
WTF in the KJS namespace.

  • kjs/CommonIdentifiers.h:
5:26 AM Changeset in webkit [31940] by zecke@webkit.org
  • 2 edits in trunk/JavaScriptCore

2008-04-16 Holger Hans Peter Freyther <zecke@selfish.org>

Unreviewed build fix for gcc.

::msToGregorianDateTime is not known to it.

  • kjs/date_object.cpp: (KJS::DateInstance::msToGregorianDateTime):
2:58 AM Changeset in webkit [31939] by ap@webkit.org
  • 3 edits in trunk/JavaScriptCore

Reviewed by Oliver Hunt.

Initialize threadMapMutex safely (as already done in ThreadingWin).

  • wtf/ThreadingGtk.cpp: (WTF::threadMapMutex): (WTF::initializeThreading):
  • wtf/ThreadingPthreads.cpp: (WTF::threadMapMutex): (WTF::initializeThreading):
2:44 AM Changeset in webkit [31938] by ap@webkit.org
  • 1 edit in trunk/JavaScriptCore/ChangeLog

Fix ChangeLog spelling.

2:41 AM Changeset in webkit [31937] by ap@webkit.org
  • 4 edits in trunk/JavaScriptCore

Reviewed by Adam Roben.

Cache Gregorian date/time structure on DateInstance objects for 1.027x SunSpider speedup
(1.65x on date-format-xparb, 1.13x on date-format-tofte).

  • kjs/DateMath.h: (KJS::GregorianDateTime::copyFrom): Added. It presumably makes sense to keep GregorianDateTime Noncopiable, so it's not just operator=.
  • kjs/date_object.h: Added a per-object cache.
  • kjs/date_object.cpp: (KJS::DateInstance::DateInstance): (KJS::DateInstance::msToGregorianDateTime): (KJS::dateProtoFuncToString): (KJS::dateProtoFuncToUTCString): (KJS::dateProtoFuncToDateString): (KJS::dateProtoFuncToTimeString): (KJS::dateProtoFuncToLocaleString): (KJS::dateProtoFuncToLocaleDateString): (KJS::dateProtoFuncToLocaleTimeString): (KJS::dateProtoFuncGetFullYear): (KJS::dateProtoFuncGetUTCFullYear): (KJS::dateProtoFuncToGMTString): (KJS::dateProtoFuncGetMonth): (KJS::dateProtoFuncGetUTCMonth): (KJS::dateProtoFuncGetDate): (KJS::dateProtoFuncGetUTCDate): (KJS::dateProtoFuncGetDay): (KJS::dateProtoFuncGetUTCDay): (KJS::dateProtoFuncGetHours): (KJS::dateProtoFuncGetUTCHours): (KJS::dateProtoFuncGetMinutes): (KJS::dateProtoFuncGetUTCMinutes): (KJS::dateProtoFuncGetSeconds): (KJS::dateProtoFuncGetUTCSeconds): (KJS::dateProtoFuncGetTimezoneOffset): (KJS::setNewValueFromTimeArgs): (KJS::setNewValueFromDateArgs): (KJS::dateProtoFuncSetYear): (KJS::dateProtoFuncGetYear): Use the cache when converting.
2:30 AM Changeset in webkit [31936] by ap@webkit.org
  • 12 edits
    1 add in trunk/JavaScriptCore

Reviewed by Darin.

Implement an abstraction for thread-specific storage, use it to get rid of some static objects.

SunSpider results were not conclusive, possibly up to 0.2% slowdown.

  • wtf/ThreadSpecific.h: Added. (WTF::::ThreadSpecific): (WTF::::~ThreadSpecific): (WTF::::get): (WTF::::set): (WTF::::destroy): (WTF::T): (WTF::::operator): Only implemented for platforms that use pthreads.
  • kjs/CommonIdentifiers.cpp: (KJS::CommonIdentifiers::shared):
  • kjs/CommonIdentifiers.h:
  • kjs/InitializeThreading.cpp: (KJS::initializeThreading):
  • kjs/Parser.cpp: (KJS::parser):
  • kjs/Parser.h:
  • kjs/identifier.cpp: (KJS::identifierTable): (KJS::literalIdentifierTable): (KJS::Identifier::initializeIdentifierThreading):
  • kjs/identifier.h:
  • kjs/lexer.cpp: (KJS::lexer):
  • kjs/lexer.h: Make static instances per-thread.
12:53 AM Changeset in webkit [31935] by eric@webkit.org
  • 4 edits in trunk/WebCore

Reviewed by hyatt.

Fix leaky ImageBuffer code.

  • platform/graphics/GeneratedImage.cpp: (WebCore::GeneratedImage::drawPattern):
  • platform/graphics/ImageBuffer.h:
  • platform/graphics/cg/ImageBufferCG.cpp: (WebCore::ImageBuffer::image):
12:52 AM Changeset in webkit [31934] by ggaren@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

2008-04-15 Geoffrey Garen <ggaren@apple.com>

Reviewed by Oliver Hunt and Maciej Stachowiak.


Fixed a codegen bug in with and switch, and added an ASSERT to
make sure it doesn't happen again.


emitCode() assumes that dst, if non-zero, is either referenced or
non-temporary (i.e., it assumes that newTemporary() will return a
register not equal to dst). Certain callers to emitCode() weren't
guaranteeing that to be so, so temporary register values were being
overwritten.

  • VM/CodeGenerator.h: (KJS::CodeGenerator::emitNode): ASSERT that dst is referenced or non-temporary.
  • kjs/nodes.cpp: (KJS::CommaNode::emitCode): Reference the dst we pass.

(KJS::WithNode::emitCode): No need to pass an explicit dst register.


(KJS::CaseBlockNode::emitCodeForBlock): No need to pass an explicit dst register.
(KJS::SwitchNode::emitCode): No need to pass an explicit dst register.

  • kjs/nodes.h: Made dst the last parameter to emitCodeForBlock, to match emitCode.

Apr 15, 2008:

10:53 PM Changeset in webkit [31933] by oliver@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

Bug 18526: Throw exceptions when resolve fails for op_resolve_base_and_func.
<https://bugs.webkit.org/show_bug.cgi?id=18526>

Reviewed by Maciej

Very simple fix, sunspider shows a 0.7% progression, ubench shows a 0.4% regression.

10:30 PM Changeset in webkit [31932] by justin.garcia@apple.com
  • 3 edits
    2 adds in trunk

WebCore:

2008-04-15 Justin Garcia <justin.garcia@apple.com>

Reviewed by Oliver.

<rdar://problem/5665299> REGRESSION (r27369): Paste text into a contenteditable div creates a contenteditable div for each line (16661)

  • editing/markup.cpp: (WebCore::createFragmentFromText): Don't use clones of the enclosing block to hold paragraphs if the enclosing block is the root editable element.

LayoutTests:

2008-04-15 Justin Garcia <justin.garcia@apple.com>

Reviewed by Oliver.

<rdar://problem/5665299> REGRESSION (r27369): Paste text into a contenteditable div creates a contenteditable div for each line (16661)

  • editing/pasteboard/5665299-expected.txt: Added.
  • editing/pasteboard/5665299.html: Added.
8:36 PM Changeset in webkit [31931] by mrowe@apple.com
  • 4 edits in trunk/WebCore

Don't treat the misnamed NSAccessibilitySortButtonRole as an accessibility role.
It is really a subrole of NSAccessibilityButtonRole. As it is not used inside WebCore
there is no change in behaviour as a result of doing this. This fixes <rdar://problem/5866444>.

Reviewed by Jon Honeycutt.

  • page/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::canSetFocusAttribute): Remove SortButtonRole as it is unused.

  • page/AccessibilityObject.h: Ditto.

(WebCore::):

  • page/mac/AccessibilityObjectWrapper.mm:

(RoleEntry::):

8:21 PM Changeset in webkit [31930] by mjs@apple.com
  • 2 edits in branches/squirrelfish/SunSpider

2008-04-15 Maciej Stachowiak <mjs@apple.com>

Rubber stamped by Oliver.


  • add newly working tests to squirrelfish list
  • tests/LIST-SQUIRRELFISH: Add 3d-raytrace and string-unpack-code
8:03 PM Changeset in webkit [31929] by mjs@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

2008-04-15 Maciej Stachowiak <mjs@apple.com>

Reviewed by Oliver.


  • fix incorrect result on 3d-raytrace test


Oliver found and tracked down this bug, I just typed in the fix.

  • VM/Machine.cpp: (KJS::slideRegisterWindowForCall): When setting omitted parameters to undefined, account for the space for local variables.
6:57 PM Changeset in webkit [31928] by mjs@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

2008-04-15 Maciej Stachowiak <mjs@apple.com>

Reviewed by Oliver.


  • fix codegen handling of dst registers


1.006x speedup (not sure why).


Most emitCode functions take an optional "dst" parameter that says
where the output of the instruction should be written. I made some
functions for convenient handling of the dst register:

  • VM/CodeGenerator.h: (KJS::CodeGenerator::tempDestination): Takes the dst register. Returns it if it is not null and is a temporary, otherwise allocates a new temporary. This is intended for cases where an intermediate value might be written into the dst

(KJS::CodeGenerator::finalDestination): Takes the dst register and an optional
register that was used as a temp destination. Picks the right thing for the final
output. Intended to be used as the output register for the instruction that generates
the final value of a particular node.


(KJS::CodeGenerator::moveToDestinationIfNeeded): Takes dst and a
RegisterID; moves from the register to dst if dst is defined and
different from the register. This is intended for cases where the
result of a node is already in a specific register (likely a
local), and so no code needs to be generated unless a specific
destination has been requested, in which case a move is needed.


I also applied these methods throughout emitCode functions. In
some cases this was just cleanup, in other cases I fixed actual
codegen bugs. Below I have given specific comments for the cases
where I believe I fixed a codegen bug, or improved quality of codegen.


  • kjs/nodes.cpp: (KJS::NullNode::emitCode): (KJS::FalseNode::emitCode): (KJS::TrueNode::emitCode): (KJS::NumberNode::emitCode): (KJS::StringNode::emitCode): (KJS::RegExpNode::emitCode): (KJS::ThisNode::emitCode): Now avoids emitting a mov when dst is the same as the this register (the unlikely case of "this = this"); (KJS::ResolveNode::emitCode): Now avoids emitting a mov when dst is the same as the local regiester, in the local var case (the unlikely case of "x = x"); (KJS::ArrayNode::emitCode): Fixed a codegen bug where array literal element expressions may have observed an intermediate value of constructing the array. (KJS::ObjectLiteralNode::emitCode): (KJS::PropertyListNode::emitCode): Fixed a codegen bug where object literal property definition expressions may have obesrved an intermediate value of constructing the object. (KJS::BracketAccessorNode::emitCode): (KJS::DotAccessorNode::emitCode): (KJS::NewExprNode::emitCode): (KJS::FunctionCallValueNode::emitCode): (KJS::FunctionCallBracketNode::emitCode): (KJS::FunctionCallDotNode::emitCode): (KJS::PostIncResolveNode::emitCode): (KJS::PostDecResolveNode::emitCode): (KJS::PostIncBracketNode::emitCode): (KJS::PostDecBracketNode::emitCode): (KJS::PostIncDotNode::emitCode): (KJS::PostDecDotNode::emitCode): (KJS::DeleteResolveNode::emitCode): (KJS::DeleteBracketNode::emitCode): (KJS::DeleteDotNode::emitCode): (KJS::DeleteValueNode::emitCode): (KJS::VoidNode::emitCode): (KJS::TypeOfResolveNode::emitCode): (KJS::TypeOfValueNode::emitCode): (KJS::PreIncResolveNode::emitCode): Fixed a codegen bug where the final value would not be output to the dst register in the local var case. (KJS::PreDecResolveNode::emitCode): Fixed a codegen bug where the final value would not be output to the dst register in the local var case. (KJS::PreIncBracketNode::emitCode): (KJS::PreDecBracketNode::emitCode): (KJS::PreIncDotNode::emitCode): (KJS::PreDecDotNode::emitCode): (KJS::UnaryPlusNode::emitCode): (KJS::NegateNode::emitCode): (KJS::BitwiseNotNode::emitCode): (KJS::LogicalNotNode::emitCode): (KJS::MultNode::emitCode): (KJS::DivNode::emitCode): (KJS::ModNode::emitCode): (KJS::AddNode::emitCode): (KJS::SubNode::emitCode): (KJS::LeftShiftNode::emitCode): (KJS::RightShiftNode::emitCode): (KJS::UnsignedRightShiftNode::emitCode): (KJS::LessNode::emitCode): (KJS::GreaterNode::emitCode): (KJS::LessEqNode::emitCode): (KJS::GreaterEqNode::emitCode): (KJS::InstanceOfNode::emitCode): (KJS::InNode::emitCode): (KJS::EqualNode::emitCode): (KJS::NotEqualNode::emitCode): (KJS::StrictEqualNode::emitCode): (KJS::NotStrictEqualNode::emitCode): (KJS::BitAndNode::emitCode): (KJS::BitXOrNode::emitCode): (KJS::BitOrNode::emitCode): (KJS::LogicalAndNode::emitCode): (KJS::LogicalOrNode::emitCode): (KJS::ConditionalNode::emitCode): (KJS::emitReadModifyAssignment): Allow an out argument separate from the operands, needed for fixes below. (KJS::ReadModifyResolveNode::emitCode): Fixed a codegen bug where the right side of the expression may observe an intermediate value. (KJS::AssignResolveNode::emitCode): Fixed a codegen bug where the right side of the expression may observe an intermediate value. (KJS::ReadModifyDotNode::emitCode): Fixed a codegen bug where the right side of the expression may observe an intermediate value. (KJS::ReadModifyBracketNode::emitCode): Fixed a codegen bug where the right side of the expression may observe an intermediate value. (KJS::CommaNode::emitCode): Avoid writing temporary value to dst register. (KJS::ReturnNode::emitCode): Void return should return undefined, not null. (KJS::FuncExprNode::emitCode):
6:56 PM Changeset in webkit [31927] by andersca@apple.com
  • 2 edits in trunk/WebCore

2008-04-15 Anders Carlsson <andersca@apple.com>

Fix leaks seen on bot.


  • loader/SubstituteResource.h: (WebCore::SubstituteResource::~SubstituteResource): Add a virtual destructor.
6:10 PM Changeset in webkit [31926] by beidson@apple.com
  • 3 edits in trunk/WebCore

2008-04-15 Brady Eidson <beidson@apple.com>

Reviewed by Anders Carlsson

Fix for <rdar://problem/5820819> - Crash sometime occurs when interrupting a load.

Each SubresourceLoader has a client. That client is often a Loader::Host object.
The Loader/Host/CachedResource system predates our ref-counting and ownership models, and therefore manages
object lifetime manually.

The cause of this crash was that we would sometimes call "didFail()" on a Host object twice - Once when
beginning the new navigation, and once when the new navigation is committed.

The problem is after the first time Host::didFail() gets called, the Host is almost always deleted shortly
thereafter. But the SubresourceLoader had a dangling pointer to the Host which is now invalid.

I explored a few options to fix this bug. The one that was most obviously "clean" was to call cancel() on
the SubresourceLoader itself, which would end up calling Host::didFail() and doing the appropriate cache
cleanup.

This problem with that approach was that it had other side effects - when you cut off a load that had already
partially displayed in the WebView, images that hadn't finished loading would be invalidated and immediately
turn into broken image icons. This was visually jarring and pretty unacceptable.

So I decided to follow a much simpler approach, which was to have the Host clear the client pointer from each
SubresourceLoader before it forgets about it. This leaves things the same visually and fixes the crash.

Note that the layout test for this - if possible - will require other enhancements to DRT including possibly
adding support for window.stop(). That task is non-trivial, and is documented in <rdar://problem/5061826>

  • loader/SubresourceLoader.h: (WebCore::SubresourceLoader::clearClient): Add a method to clear the SubresourceLoaderClient. This is perfectly safe to do on an in-flight SubresourceLoader as they are already designed to be client-less, and already null-check the client before calling it.
  • loader/loader.cpp: (WebCore::Loader::Host::didFail): The SubresourceLoader itself might not be finished loading and might decide to call into its client later. Since the client has no guaranteed lifetime and is liable to be deleted after didFail() is called, call clearClient() on the SubresourceLoader so such an invalid call can't happen.
4:48 PM Changeset in webkit [31925] by kdecker@apple.com
  • 4 edits in trunk/WebKit/mac

Reviewed by Anders.

<rdar://problem/5412759> CrashTracer: [USER] 22 crashes in Safari at com.apple.quicktime.webplugin: NPN_SetValue + 15403


In certain situations, code in WebBasePluginPackage would load a plug-in only for the explicit reason of asking it to create a
preference file, but wouldn't actually unload the bundle. This created problems for the QuickTime WebKit plug-in by unloading
a bundle out from underneath itself.

  • Plugins/WebBasePluginPackage.h: Added unload method.
  • Plugins/WebBasePluginPackage.m: (-[WebBasePluginPackage unload]): Added new method. Currently, only Netscape plug-ins support unload. (-[WebBasePluginPackage pListForPath:createFile:]): Added a call to unload.
  • Plugins/WebNetscapePluginPackage.m: (-[WebNetscapePluginPackage unload]): Added.
4:24 PM Changeset in webkit [31924] by andersca@apple.com
  • 2 edits in trunk/WebKitTools

2008-04-15 Anders Carlsson <andersca@apple.com>

Add missing ;


  • Scripts/build-webkit:
4:16 PM Changeset in webkit [31923] by andersca@apple.com
  • 13 edits
    12 adds in trunk

JavaScriptCore:

2008-04-15 Anders Carlsson <andersca@apple.com>

Reviewed by Adam.

Add ENABLE_OFFLINE_WEB_APPLICATIONS to FEATURE_DEFINES.


  • Configurations/JavaScriptCore.xcconfig:

WebCore:

2008-04-15 Anders Carlsson <andersca@apple.com>

Reviewed by Adam.

Add empty files for the application cache.


  • Configurations/WebCore.xcconfig:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.vcproj/build-generated-files.sh: Add ENABLE_OFFLINE_WEB_APPLICATIONS to FEATURE_DEFINES.


  • WebCore.xcodeproj/project.pbxproj:
  • loader/appcache: Added.
  • loader/appcache/ApplicationCache.cpp: Added.
  • loader/appcache/ApplicationCache.h: Added.
  • loader/appcache/ApplicationCacheGroup.cpp: Added.
  • loader/appcache/ApplicationCacheGroup.h: Added.
  • loader/appcache/ApplicationCacheResource.cpp: Added.
  • loader/appcache/ApplicationCacheResource.h: Added.
  • loader/appcache/DOMApplicationCache.cpp: Added.
  • loader/appcache/DOMApplicationCache.h: Added.
  • loader/appcache/DOMApplicationCache.idl: Added.
  • loader/appcache/ManifestParser.cpp: Added.
  • loader/appcache/ManifestParser.h: Added.

WebKit/mac:

2008-04-15 Anders Carlsson <andersca@apple.com>

Reviewed by Adam.

Add ENABLE_OFFLINE_WEB_APPLICATIONS to FEATURE_DEFINES.

  • Configurations/WebKit.xcconfig:

WebKit/win:

2008-04-15 Anders Carlsson <andersca@apple.com>

Reviewed by Adam.

Add ENABLE_OFFLINE_WEB_APPLICATIONS to FEATURE_DEFINES.

  • WebKit.vcproj/WebKit.vcproj:

WebKitTools:

2008-04-15 Anders Carlsson <andersca@apple.com>

Reviewed by Adam.

Add ENABLE_OFFLINE_WEB_APPLICATIONS to FEATURE_DEFINES.

  • Scripts/build-webkit:
3:27 PM Changeset in webkit [31922] by kmccullough@apple.com
  • 6 edits in trunk/WebCore

2008-04-15 Kevin McCullough <kmccullough@apple.com>

Reviewed by Tim.

  • <rdar://problem/5792587> AJAX (XMLHttpRequest) support for the Inspector (17776)
  • Add XMLHttpRequest support to the inspector.
  • English.lproj/InspectorLocalizedStrings.js: Specify capitalization instead of using text-transform because XHR must capitalize all the letters.
  • page/inspector/Resource.js: Assume XHRs are textType even though this may not always be true. Also add the XHR category and let all mime types be consistent with it.
  • page/inspector/ResourcesPanel.js: Set the XHR category color.
  • page/inspector/inspector.css: Make XHRs yellow and fonts red because XHRs are more common than fonts and yellow next to orange (scripts) is not as harsh on the eyes as red next to orange.
  • page/inspector/inspector.js: Specify capitalization again.
2:56 PM Changeset in webkit [31921] by mjs@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

2008-04-15 Maciej Stachowiak <mjs@apple.com>

Reviewed by Geoff.

  • fix huge performance regression (from trunk) in string-unpack-code


This restores string-unpack-code performance to parity with
trunk (2.27x speedup relative to previous SquirrelFish)


  • VM/Machine.cpp: (KJS::Machine::execute): Shrink register file after call to avoid growing repeatedly.
2:31 PM Changeset in webkit [31920] by hyatt@apple.com
  • 3 edits
    4 adds in trunk

2008-04-15 David Hyatt <hyatt@apple.com>

Fix the zoom property so that it works properly with font-size.

Reviewed by John Sullivan

Added fast/css/zoom-font-size.html

  • css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::updateFont): (WebCore::CSSStyleSelector::applyProperty): (WebCore::CSSStyleSelector::checkForZoomChange):
  • css/CSSStyleSelector.h:
2:29 PM Changeset in webkit [31919] by ggaren@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

2008-04-15 Geoffrey Garen <ggaren@apple.com>

Reviewed by Sam Weinig.


Fixed dumpCallFrame to match our new convention of passing around a
ScopeChainNode* instead of a ScopeChain*.

  • JavaScriptCore.exp:
  • VM/Machine.cpp: (KJS::Machine::dumpCallFrame):
  • VM/Machine.h:
1:56 PM Changeset in webkit [31918] by timothy@apple.com
  • 3 edits in trunk/WebCore

Fixes the bug where a resource view could still be shown after the inspected
page navigates to another page.

https://bugs.webkit.org/show_bug.cgi?id=18517

Reviewed by Adam Roben.

  • page/inspector/ResourcesPanel.js:

(WebInspector.ResourcesPanel.prototype.reset): Close the visible resource.
Iterate over all the resources and zero errors and warnings and delete the
resource view and tree element. Removes all children of resourceViews. Passes
true to _updateGraphDividersIfNeeded to force an immediate update.
(WebInspector.ResourcesPanel.prototype.removeResource): Added. Closes
the resource view if it is visible. Removes the resource from the _resources
array. Removes the tree element from the outline tree. Zeros out the errors
and warnings properties. Deletes the tree element and resource view properties.
(WebInspector.ResourcesPanel.prototype.closeVisibleResource): Null check
this._calculator for times when reset is called before the calculator is set.

  • page/inspector/inspector.js:

(WebInspector.removeResource): Call ResourcesPanel.removeResource.

1:55 PM Changeset in webkit [31917] by andersca@apple.com
  • 4 edits in trunk/WebCore

2008-04-15 Anders Carlsson <andersca@apple.com>

Reviewed by Adam.

Rename "archive" to "substitute" in a couple of places.


  • loader/DocumentLoader.cpp: (WebCore::DocumentLoader::DocumentLoader): (WebCore::DocumentLoader::clearArchiveResources): (WebCore::DocumentLoader::deliverSubstituteResourcesAfterDelay): (WebCore::DocumentLoader::substituteResourceDeliveryTimerFired): (WebCore::DocumentLoader::isSubstituteLoadPending): (WebCore::DocumentLoader::cancelPendingSubstituteLoad): (WebCore::DocumentLoader::scheduleArchiveLoad): (WebCore::DocumentLoader::setDefersLoading):
  • loader/DocumentLoader.h:
  • loader/ResourceLoader.cpp: (WebCore::ResourceLoader::load): (WebCore::ResourceLoader::didCancel):
12:44 PM Changeset in webkit [31916] by andersca@apple.com
  • 4 edits in trunk/WebCore

2008-04-15 Anders Carlsson <andersca@apple.com>

Reviewed by Adam.

Move the URL, response and data to SubstituteResource.


  • loader/SubstituteResource.h: (WebCore::SubstituteResource::url): (WebCore::SubstituteResource::response): (WebCore::SubstituteResource::data): (WebCore::SubstituteResource::SubstituteResource):
  • loader/archive/ArchiveResource.cpp: (WebCore::ArchiveResource::ArchiveResource):
  • loader/archive/ArchiveResource.h: (WebCore::ArchiveResource::frameName):
12:21 PM Changeset in webkit [31915] by hyatt@apple.com
  • 3 edits
    4 adds in trunk

2008-04-15 David Hyatt <hyatt@apple.com>

https://bugs.webkit.org/show_bug.cgi?id=18467

Make sure to ignore zoom:0. That is not supposed to actually do anything. It's a hack in IE
to cause an element to set "hasLayout."

Reviewed by Anders

Added fast/css/zoom-property-parsing.html

  • css/CSSParser.cpp: (WebCore::CSSParser::parseValue):
  • css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty):
12:03 PM Changeset in webkit [31914] by andersca@apple.com
  • 4 edits
    1 add in trunk/WebCore

2008-04-15 Anders Carlsson <andersca@apple.com>

Reviewed by Adam.

Add a (currently empty) SubstituteResource class and make ArchiveResource inherit from it.


  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • loader/SubstituteResource.h: Added.
  • loader/archive/ArchiveResource.h:
11:49 AM Changeset in webkit [31913] by Antti Koivisto
  • 3 edits in trunk/WebCore

2008-04-15 Antti Koivisto <Antti Koivisto>

Reviewed by Geoff.

Fix <rdar://problem/5862921>
REGRESSION: Leak in SVGSVGElement::SVGSVGElement


In these strange days RefCounted starts with count of one.

  • svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::SVGSVGElement):
  • svg/animation/SMILTimeContainer.h: (WebCore::SMILTimeContainer::create):
11:15 AM Changeset in webkit [31912] by hyatt@apple.com
  • 5 edits
    4 adds in trunk

WebCore:

2008-04-15 Anatoli Papirovski <apapirovski@mac.com>

Reviewed by hyatt

[CSS1, CSS3] Fixed the background-origin calculation for root elements
(background-size and background-position are affected), r10794
[CSS3] Fixed the background-size transformation where width is specified in percentage and height is left to auto

Test: fast/backgrounds/background-origin-root-element.html

  • rendering/RenderBox.cpp: (WebCore::RenderBox::calculateBackgroundSize): (WebCore::RenderBox::calculateBackgroundImageGeometry):

LayoutTests:

2008-04-15 Anatoli Papirovski <apapirovski@mac.com>

Reviewed by hyatt

Added test case for background-origin calculation on root elements
(background-repeat and background-size), r10794 [CSS1 + CSS3]

  • fast/backgrounds/background-origin-root-element.html: Added.
  • platform/mac/fast/backgrounds/background-origin-root-element-expected.checksum: Added.
  • platform/mac/fast/backgrounds/background-origin-root-element-expected.png: Added.
  • platform/mac/fast/backgrounds/background-origin-root-element-expected.txt: Added.
10:54 AM Changeset in webkit [31911] by beidson@apple.com
  • 4 edits in trunk/WebKit/mac

2008-04-15 Brady Eidson <beidson@apple.com>

Reviewed by John Sullivan

Do a more complete job adding the "WebArchiveDebugMode" pref

  • WebView/WebPreferences.m: Add both getter *and* setter (-[WebPreferences webArchiveDebugModeEnabled]): (-[WebPreferences setWebArchiveDebugModeEnabled:]):
  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm: (-[WebView _preferencesChangedNotification:]): Call the renamed getter
10:24 AM Changeset in webkit [31910] by timothy@apple.com
  • 4 edits in trunk/WebCore

Fixes the regression where the error and warning counts did not show up in the Resources
sidebar next to resources.

https://bugs.webkit.org/show_bug.cgi?id=18494

Reviewed by Adam Roben.

  • page/inspector/ResourcesPanel.js:

(WebInspector.ResourcesPanel.prototype.addMessageToResource): Increment errors or warnings
on the resource. Set the bubbleText to the total of the errors and warnings. Add a error
or warning class to the bubble.
(WebInspector.ResourcesPanel.prototype.clearMessages): Zero out the errors and warnings
properties on each resource. Set the bubbleText back to an empty string.

  • page/inspector/SidebarTreeElement.js:

(WebInspector.SidebarTreeElement): Create a statusElement.
(WebInspector.SidebarTreeElement.prototype.get bubbleText): Return _bubbleText.
(WebInspector.SidebarTreeElement.prototype.set bubbleText): Create bubbleElement if needed.
Assign the value to _bubbleText and bubbleElement.textContent.
(WebInspector.SidebarTreeElement.prototype.onattach): Append statusElement to _listItemNode.

  • page/inspector/inspector.css: Style rules for bubbles and status elements.
10:24 AM Changeset in webkit [31909] by timothy@apple.com
  • 5 edits in trunk/WebCore

Fixes the regression where error and warning bubbles would not be added
to the source view of a resource.

https://bugs.webkit.org/show_bug.cgi?id=18495

Reviewed by Adam Roben.

  • css/view-source.css:

(.webkit-html-message-bubble): Add a min-height to make sure the border-radius
has enough room to apply.

  • page/inspector/Console.js:

(WebInspector.Console.prototype.addMessage): Removed code that added messages
to resource panels and incremented error and warning counts on resources.
Now just call ResourcesPanel.addMessageToResource after assigning the resource
to the console message.
(WebInspector.Console.prototype.clearMessages): Removed code that cleared error
and warning counts from resources an call ResourcesPanel.clearMessages.

  • page/inspector/ResourcesPanel.js:

(WebInspector.ResourcesPanel.prototype.addMessageToResource): Call addMessage
on the resource's view, if it is implemented.
(WebInspector.ResourcesPanel.prototype.clearMessages): Call clearMessages
on all the resource views for the ones that implement it.
(WebInspector.ResourcesPanel.prototype.refreshResource): Call _resourceView
to make the resource's view if needed. Use a local view variable.
(WebInspector.ResourcesPanel.prototype._resourceView): Added helper function
to create a resource view if needed.

  • page/inspector/SourceView.js:

(WebInspector.SourceView.prototype.setupSourceFrameIfNeeded): Delete the
_frameNeedsSetup property at the beginning to prevent recursion. Get the
length of the messages array when assigning the local length variable.
(WebInspector.SourceView.prototype.addMessage): Renamed from addMessageToSource.
(WebInspector.SourceView.prototype.clearMessages): Added. Clear all the message
bubbles that might be sprinkled in the source. Also clears the messages array.
(WebInspector.SourceView.prototype._addMessageToSource): Create the image
element in the Inspector's document so we can use relative image URLs. Then
adopt the image element into the frame's document.

10:07 AM Changeset in webkit [31908] by beidson@apple.com
  • 4 edits
    20 adds in trunk

WebCore:

2008-04-15 Brady Eidson <beidson@apple.com>

Reviewed by Anders

Hook up event dispatching for window.localStorage changes.

Tests: storage/domstorage/localstorage/enumerate-storage.html

storage/domstorage/localstorage/iframe-events.html
storage/domstorage/localstorage/index-get-and-set.html
storage/domstorage/localstorage/onstorage-attribute-markup.html
storage/domstorage/localstorage/onstorage-attribute-setattribute.html
storage/domstorage/localstorage/simple-events.html
storage/domstorage/localstorage/simple-usage.html
storage/domstorage/localstorage/window-open.html

  • storage/LocalStorage.cpp: (WebCore::LocalStorage::dispatchStorageEvent): Walk every Page in the PageGroup, adding each Frame that matches the storage area's security origin to a Vector. Then dispatch the StorageEvent to each Frame in the Vector
  • storage/SessionStorage.cpp: (WebCore::SessionStorage::dispatchStorageEvent): Adopt the technique used in LocalStorage, which is to only add the Frames to the Vector if their security origin matches

LayoutTests:

2008-04-15 Brady Eidson <beidson@apple.com>

Reviewed by Anders

Hook up event dispatching for window.localStorage changes.
Now a meaningful LayoutTest suite can be landed for window.localStorage.

  • storage/domstorage/localstorage/enumerate-storage-expected.txt: Added.
  • storage/domstorage/localstorage/enumerate-storage.html: Added.
  • storage/domstorage/localstorage/iframe-events-expected.txt: Added.
  • storage/domstorage/localstorage/iframe-events.html: Added.
  • storage/domstorage/localstorage/index-get-and-set-expected.txt: Added.
  • storage/domstorage/localstorage/index-get-and-set.html: Added.
  • storage/domstorage/localstorage/onstorage-attribute-markup-expected.txt: Added.
  • storage/domstorage/localstorage/onstorage-attribute-markup.html: Added.
  • storage/domstorage/localstorage/onstorage-attribute-setattribute-expected.txt: Added.
  • storage/domstorage/localstorage/onstorage-attribute-setattribute.html: Added.
  • storage/domstorage/localstorage/resources: Added.
  • storage/domstorage/localstorage/resources/clearLocalStorage.js: Added.
  • storage/domstorage/localstorage/resources/iframe-events-second.html: Added.
  • storage/domstorage/localstorage/resources/window-open-second.html: Added.
  • storage/domstorage/localstorage/simple-events-expected.txt: Added.
  • storage/domstorage/localstorage/simple-events.html: Added.
  • storage/domstorage/localstorage/simple-usage-expected.txt: Added.
  • storage/domstorage/localstorage/simple-usage.html: Added.
  • storage/domstorage/localstorage/window-open-expected.txt: Added.
  • storage/domstorage/localstorage/window-open.html: Added.
4:51 AM Changeset in webkit [31907] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

Ariya Hidayat <ariya.hidayat@trolltech.com>

fix potential crash when loading image(s)

Crash may occur. If compiled with 4.3, the variable is not initialized.
This fix solves https://bugs.webkit.org/show_bug.cgi?id=17174

3:51 AM Changeset in webkit [31906] by Simon Hausmann
  • 5 edits in trunk/WebKit/qt

Simon Hausmann <Simon Hausmann>

Update the micro focus for input methods as soon as the composition mode changes
or the caret/selection changes.

3:51 AM Changeset in webkit [31905] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

Simon Hausmann <Simon Hausmann>

Don't use QDir, QString or any locale sensitive function before constructing Q(Core)Application,
it yields undefined behaviour or wrong default codec initialization.

3:50 AM Changeset in webkit [31904] by Simon Hausmann
  • 5 edits in trunk

Olivier Goffart <ogoffart@trolltech.com>

Fixes: copy to clipboard when selecting, and paste when clicking with the middle button

3:29 AM Changeset in webkit [31903] by Simon Hausmann
  • 7 edits in trunk/WebKit/qt

Michael Brasser <michael.brasser@trolltech.com>

Add basic input method support.

3:28 AM Changeset in webkit [31902] by Simon Hausmann
  • 5 edits in trunk/WebKit/qt

Simon Hausmann <Simon Hausmann>

Added (QWebFrame|QWebView)::textZoomFactor.

3:28 AM Changeset in webkit [31901] by Simon Hausmann
  • 3 edits in trunk/WebKit/qt

Michael Brasser <michael.brasser@trolltech.com>

Added simple scrolling API to QWebFrame.

The intent is that it works similar to QAbstractScrollArea.

3:12 AM Changeset in webkit [31900] by Simon Hausmann
  • 2 edits in trunk/WebKit/qt

Olivier Goffart <ogoffart@trolltech.com>

Fixes: implement the OpenFrameInNewWindow action.

2:40 AM Changeset in webkit [31899] by Simon Hausmann
  • 44 edits in trunk

Fix compilation with Qt namespaces

Qt can be configured to have all of its classes inside a specified namespaces.
This is for example used in plugin/component environments like Eclipse.

This change makes it possible to let the Qt port compile against a namespaced
Qt by the use of macros Qt provides to properly forward declare Qt classes in
the namespace.

Signed-off-by: Simon

2:18 AM Changeset in webkit [31898] by oliver@apple.com
  • 7 edits in branches/squirrelfish/JavaScriptCore

Bug 18436: Need to throw exception on read/modify/write or similar resolve for nonexistent property
<https://bugs.webkit.org/show_bug.cgi?id=18436>

Reviewed by Maciej.

Add op_resolve_base_and_property for read/modify/write operations,
this adds a "superinstruction" to resolve the base and value of a
property simultaneously. Just using resolveBase and resolve results
in an 5% regression in ubench, 30% in loop-empty-resolve (which is
expected). 1.3% progression in sunspider, 2.1% in ubench, with a
21% gain in loop-empty-resolve. The only outlier is function-missing-args
which gets a 3% regression that I could never resolve.

2:07 AM Changeset in webkit [31897] by mjs@apple.com
  • 8 edits in branches/squirrelfish/JavaScriptCore

2008-04-15 Maciej Stachowiak <mjs@apple.com>

Reviewed by Oliver.


3d-raytrace and string-unpack-code now run.


The basic approach is to pass around ScopeChainNode* instead of
ScopeChain*, which in addition to not becoming suddenly an invalid
pointer also saves an indirection.


This is an 0.4% speedup on SunSpider --squirrelfish (1.8% on --ubench)


  • VM/Machine.cpp: (KJS::resolve): (KJS::resolveBase): (KJS::resolveBaseAndFunc): (KJS::initializeCallFrame): (KJS::scopeChainForCall): (KJS::Machine::unwindCallFrame): (KJS::Machine::throwException): (KJS::Machine::execute): (KJS::Machine::privateExecute):
  • VM/Machine.h:
  • VM/Register.h: (KJS::Register::):
  • kjs/nodes.cpp: (KJS::EvalNode::generateCode): (KJS::FunctionBodyNode::generateCode): (KJS::ProgramNode::generateCode): (KJS::ProgramNode::processDeclarations): (KJS::EvalNode::processDeclarations): (KJS::FuncDeclNode::makeFunction): (KJS::FuncExprNode::makeFunction):
  • kjs/nodes.h: (KJS::ProgramNode::): (KJS::EvalNode::): (KJS::FunctionBodyNode::):
  • kjs/object.h:
  • kjs/scope_chain.h: (KJS::ScopeChainNode::ScopeChainNode): (KJS::ScopeChainNode::deref): (KJS::ScopeChainIterator::ScopeChainIterator): (KJS::ScopeChainIterator::operator*): (KJS::ScopeChainIterator::operator->): (KJS::ScopeChain::ScopeChain): (KJS::ScopeChain::node): (KJS::ScopeChain::deref): (KJS::ScopeChain::ref): (KJS::ScopeChainNode::ref): (KJS::ScopeChainNode::release): (KJS::ScopeChainNode::begin): (KJS::ScopeChainNode::end):
12:20 AM squirrelfish edited by ggaren@apple.com
(diff)
Note: See TracTimeline for information about the timeline view.