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

Timeline



Apr 14, 2008:

10:19 PM Changeset in webkit [31896] by ggaren@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.


Fixed crash when accessing registers in a torn-off activation object.

  • kjs/JSActivation.cpp: (KJS::JSActivation::copyRegisters): Update our registerOffset after copying our registers, since our offset should now be relative to our private register array, not the shared register file.
8:40 PM Changeset in webkit [31895] by mjs@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.


  • fix a codegen flaw that makes some tests run way too fast or way too slow


The basic problem was that FunctionCallResolveNode results in
codegen which can incorrectly write an intermediate value into the
dst register even when that is a local. I added convenience
functions to CodeGenerator for getting this right, but for now I
only fixed FunctionCallResolve.

  • VM/CodeGenerator.h: (KJS::CodeGenerator::tempDestination): (KJS::CodeGenerator::):
  • kjs/nodes.cpp: (KJS::FunctionCallResolveNode::emitCode):
5:47 PM Changeset in webkit [31894] by beidson@apple.com
  • 1 edit in trunk/WebCore/ChangeLog

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

Fix up a recent Changelog comment that I never updated

5:45 PM Changeset in webkit [31893] by beidson@apple.com
  • 17 edits
    3 adds in trunk

WebCore:

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

Reviewed by Anders

Lay the underpinnings for LocalStorage.

For now, this just exposes window.localStorage to the dom which returns an in-memory Storage object, much
like SessionStorage. The primary difference at this point is that the object returned is shared globally,
and isn't copied for new top-level browsing contexts like SessionStorage.

Later, I'll add proper event dispatch and a persistent storage backing.

  • GNUmakefile.am:
  • WebCore.base.exp:
  • WebCore.pro:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • WebCoreSources.bkl:
  • bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::mark): Mark the optionalLocalStorage
  • page/DOMWindow.cpp: (WebCore::DOMWindow::clear): (WebCore::DOMWindow::localStorage):
  • page/DOMWindow.h: (WebCore::DOMWindow::optionalLocalStorage):
  • storage/LocalStorage.cpp: Added. (WebCore::LocalStorage::sharedLocalStorage): (WebCore::LocalStorage::LocalStorage): (WebCore::LocalStorage::storageArea): (WebCore::LocalStorage::itemChanged): (WebCore::LocalStorage::itemRemoved): (WebCore::LocalStorage::dispatchStorageEvent):
  • storage/LocalStorage.h: Added.
  • storage/SessionStorage.cpp: Refactor to use the client interface for event dispatching for sessionStorage objects (WebCore::SessionStorage::SessionStorage): (WebCore::SessionStorage::copy): (WebCore::SessionStorage::storageArea): (WebCore::SessionStorage::itemChanged): (WebCore::SessionStorage::itemRemoved): (WebCore::SessionStorage::dispatchStorageEvent):
  • storage/SessionStorage.h:
  • storage/StorageArea.cpp: Add a client parameter, and call to the client when an item is changed or removed. (WebCore::StorageArea::create): (WebCore::StorageArea::StorageArea): (WebCore::StorageArea::copy): (WebCore::StorageArea::setItem): (WebCore::StorageArea::removeItem): (WebCore::StorageArea::setClient):
  • storage/StorageArea.h: (WebCore::StorageArea::page): (WebCore::StorageArea::securityOrigin):
  • storage/StorageAreaClient.h: Added. Break out "itemChanged" and "itemRemoved" to a StorageAreaClient This way, both SessionStorage and LocalStorage areas can have different behavior on changes with that behavior managed from a central location. (WebCore::StorageAreaClient::~StorageAreaClient): (WebCore::StorageAreaClient::StorageAreaClient): (WebCore::StorageAreaClient::itemChanged): (WebCore::StorageAreaClient::itemRemoved):

LayoutTests:

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

Reviewed by Anders

As underpinnings for LocalStorage are laid, it is exposed to the dom - update the relevant layout tests.

  • fast/dom/Window/window-properties-expected.txt:
  • storage/domstorage/window-attributes-exist-expected.txt:
5:40 PM Changeset in webkit [31892] by beidson@apple.com
  • 9 edits in trunk

WebCore:

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

Reviewed by Anders

Add a hidden pref to debug WebArchive loading. With this pref on, when loading a WebArchive,
if the resource isn't in the ArchiveResourceCollection, the loader will not fall back to the
network and will instead fail the load as "cancelled."

  • loader/ResourceLoader.cpp: (WebCore::ResourceLoader::load): Do the check here.
  • page/Settings.cpp: (WebCore::Settings::Settings): (WebCore::Settings::setWebArchiveDebugModeEnabled):
  • page/Settings.h: (WebCore::Settings::webArchiveDebugModeEnabled):

WebKit/mac:

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

Reviewed by Anders

Add a hidden pref to debug WebArchive loading. With this pref on, when loading a WebArchive,
if the resource isn't in the ArchiveResourceCollection, the loader will not fall back to the
network and will instead fail the load as "cancelled."

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.m: (+[WebPreferences initialize]): (-[WebPreferences _webArchiveDebugModeEnabled]):
  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm: (-[WebView _preferencesChangedNotification:]):
4:55 PM Changeset in webkit [31891] by Antti Koivisto
  • 9 edits in trunk/WebCore

2008-04-14 Antti Koivisto <Antti Koivisto>

Reviewed by Eric.

Some preparations for additive animations and animations in <use>.

  • Disallow animation elements in instance trees.
  • Fix buggy SVGUseElement::removeDisallowedElementsFromSubtree(), make it public and static
  • Invoke it from SVGElementInstance::updateInstance() to clean up the instance tree there as well.
  • Add mechanism for blocking instance updates when an animation changes the referenced tree.


The added assert in SVGSMILElement::insertedIntoDocument() verifies the fixes
with the existing test cases.

  • svg/SVGAElement.cpp: (WebCore::SVGAElement::defaultEventHandler):
  • svg/SVGElementInstance.cpp: (WebCore::SVGElementInstance::updateInstance):
  • svg/SVGStyledElement.cpp: (WebCore::SVGStyledElement::updateElementInstance): (WebCore::SVGStyledElement::setInstanceUpdatesBlocked):
  • svg/SVGStyledElement.h:
  • svg/SVGUseElement.cpp: (WebCore::isDisallowedElement): (WebCore::SVGUseElement::removeDisallowedElementsFromSubtree):
  • svg/SVGUseElement.h:
  • svg/animation/SVGSMILElement.cpp: (WebCore::SVGSMILElement::insertedIntoDocument): (WebCore::SVGSMILElement::isSMILElement): (WebCore::SVGSMILElement::connectConditions): (WebCore::SVGSMILElement::disconnectConditions):
  • svg/animation/SVGSMILElement.h:
4:46 PM Changeset in webkit [31890] by Adam Roben
  • 10 edits
    17 adds in trunk/WebCore

Don't let the inspected page overwrite properties of JS objects in the Inspector

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

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

Reviewed by Sam Weinig and Geoff Garen.

Tests (contributed by Adam Barth and Collin Jackson):
manual-tests/inspector-wrappers

  • GNUmakefile.am:
  • WebCore.pro:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • WebCoreSources.bkl: Added new files to the projects.
  • bindings/js/JSQuarantinedObjectWrapper.cpp: Added. (WebCore::): (WebCore::JSQuarantinedObjectWrapper::asWrapper): Converts a JSValue into a JSQuarantinedObjectWrapper, if the JSValue is in fact a JSQuarantinedObjectWrapper. (WebCore::JSQuarantinedObjectWrapper::cachedValueGetter): Callback to be used with PropertySlot. (WebCore::JSQuarantinedObjectWrapper::JSQuarantinedObjectWrapper): Hold onto the object we're wrapping and its global object. Pass the wrapped prototype up to the JSObject constructor. (WebCore::JSQuarantinedObjectWrapper::~JSQuarantinedObjectWrapper): (WebCore::JSQuarantinedObjectWrapper::unwrappedExecStateMatches): Returns true if our underlying object originated from the same global object as the passed-in ExecState. (WebCore::JSQuarantinedObjectWrapper::unwrappedExecState): (WebCore::JSQuarantinedObjectWrapper::transferExceptionToExecState): Wraps and moves an exception from our underlying ExecState to the passed-in one. (WebCore::JSQuarantinedObjectWrapper::mark): Marks ourselves and the objects we're holding references to.

(WebCore::JSQuarantinedObjectWrapper::getOwnPropertySlot):
(WebCore::JSQuarantinedObjectWrapper::put):
(WebCore::JSQuarantinedObjectWrapper::deleteProperty):
(WebCore::JSQuarantinedObjectWrapper::implementsConstruct):
(WebCore::JSQuarantinedObjectWrapper::construct):
(WebCore::JSQuarantinedObjectWrapper::implementsHasInstance):
(WebCore::JSQuarantinedObjectWrapper::hasInstance):
(WebCore::JSQuarantinedObjectWrapper::implementsCall):
(WebCore::JSQuarantinedObjectWrapper::callAsFunction):
(WebCore::JSQuarantinedObjectWrapper::getPropertyNames):
JSObject overrides. These each check the appropriate permission before
allowing the call to proceed. We wrap all outgoing values using
m_wrapOutgoingValue, and we prepare all incoming values with the
virtual prepareIncomingValue function. If an exception is raised when
calling the underlying object, we transfer the exception in wrapped
form to the passed-in ExecState.

  • bindings/js/JSQuarantinedObjectWrapper.h: Added. (WebCore::JSQuarantinedObjectWrapper::unwrappedObject): (WebCore::JSQuarantinedObjectWrapper::className): We return the underlying object's class name so that we can successfully masquerade as that underlying object when, e.g., Object.prototype.toString is called on us. (WebCore::JSQuarantinedObjectWrapper::classInfo):

(WebCore::JSQuarantinedObjectWrapper::allowsGetProperty):
(WebCore::JSQuarantinedObjectWrapper::allowsSetProperty):
(WebCore::JSQuarantinedObjectWrapper::allowsDeleteProperty):
(WebCore::JSQuarantinedObjectWrapper::allowsConstruct):
(WebCore::JSQuarantinedObjectWrapper::allowsHasInstance):
(WebCore::JSQuarantinedObjectWrapper::allowsCallAsFunction):
(WebCore::JSQuarantinedObjectWrapper::allowsGetPropertyNames):
These virtual methods let subclasses define the allowed operations on
the wrapped object. By default all operations are disabled.

  • bindings/js/JSInspectedObjectWrapper.cpp: Added. This subclass of JSQuarantinedObjectWrapper is used to wrap objects from the inspected page being passed to the Inspector. (WebCore::wrappers): (WebCore::): (WebCore::JSInspectedObjectWrapper::wrap): Wraps the passed-in object if needed and returns the wrapper. If this object has been wrapped previously we'll return the old wrapper rather than make a new one. (WebCore::JSInspectedObjectWrapper::JSInspectedObjectWrapper): Add ourselves to the wrapper map. (WebCore::JSInspectedObjectWrapper::~JSInspectedObjectWrapper): Remove ourselves from the wrapper map. (WebCore::JSInspectedObjectWrapper::prepareIncomingValue): Ensure that any objects passed to the inspected object are either wrappers around objects from the inspected page (in which case we unwrap them so that the inspected page never sees the wrapper), or wrapped callbacks from the Inspector.
  • bindings/js/JSInspectedObjectWrapper.h: Added. (WebCore::JSInspectedObjectWrapper::classInfo): (WebCore::JSInspectedObjectWrapper::allowsGetProperty): (WebCore::JSInspectedObjectWrapper::allowsSetProperty): (WebCore::JSInspectedObjectWrapper::allowsDeleteProperty): (WebCore::JSInspectedObjectWrapper::allowsConstruct): (WebCore::JSInspectedObjectWrapper::allowsHasInstance): (WebCore::JSInspectedObjectWrapper::allowsCallAsFunction): (WebCore::JSInspectedObjectWrapper::allowsGetPropertyNames): These all return true so that the Inspector can use objects from the inspected page however it needs. (WebCore::JSInspectedObjectWrapper::wrapOutgoingValue): Wrap all outgoing values as JSInspectedObjectWrappers.
  • bindings/js/JSInspectorCallbackWrapper.cpp: Added. This subclass of JSQuarantinedObjectWrapper is used to wrap callbacks that the Inspector passes to the inspected page (e.g., for event listeners or client-side storage callbacks). (WebCore::wrappers): (WebCore::): (WebCore::JSInspectorCallbackWrapper::wrap): Wraps the passed-in object if needed and returns the wrapper. If this object has been wrapped previously we'll return the old wrapper rather than make a new one. (WebCore::JSInspectorCallbackWrapper::JSInspectorCallbackWrapper): Add ourselves to the wrapper map. (WebCore::JSInspectorCallbackWrapper::~JSInspectorCallbackWrapper): Remove ourselves from the wrapper map. (WebCore::JSInspectorCallbackWrapper::prepareIncomingValue): Ensure that values passed from the inspected page to an Inspector callback are wrapped in JSInspectedObjectWrappers. We also allow the inspected page to pass ourselves in (which will happen in the case of a client-side storage callback, where the callback itself is passed as the this object). In this case we unwrap ourselves so that the Inspector doesn't have to deal with the wrapper.
  • bindings/js/JSInspectorCallbackWrapper.h: Added. (WebCore::JSInspectorCallbackWrapper::classInfo): (WebCore::JSInspectorCallbackWrapper::allowsCallAsFunction): This is the only allowed operation on a JSInspectorCallbackWrapper. (WebCore::JSInspectorCallbackWrapper::wrapOutgoingValue): Wrap all outgoing values as JSInspectorCallbackWrappers.
  • page/InspectorController.cpp: (WebCore::getResourceDocumentNode): Wrap the Document before passing it to the Inspector. (WebCore::highlightDOMNode): Unwrap the Node that the Inspector passed to us. (WebCore::databaseTableNames): Unwrap the Database that the Inspector passed to us. (WebCore::inspectedWindow): Wrap the Window before passing it to the Inspector. (WebCore::InspectorController::focusNode): Wrap the Node before passing it to the Inspector. (WebCore::wrapCallback): Wraps the passed-in callback in a JSInspectorCallbackWrapper. (WebCore::InspectorController::addDatabaseScriptResource): Wrap the Database beore pasing it to the Inspector. (WebCore::InspectorController::windowScriptObjectAvailable): Add the new wrapCallback function to the InspectorController JS object.
  • page/inspector/ElementsPanel.js: (WebInspector.ElementsPanel.reset): Wrap the contentLoaded callback.
  • page/inspector/DatabaseQueryView.js: (WebInspector.DatabaseQueryView._enterKeyPressed):
  • page/inspector/DatabaseTableView.js: (WebInspector.DatabaseTableView.update): Pass null instead of an empty array to executeSql since we're no longer allowed to pass any unwrapped objects to the inspected page. We now wrap all callbacks being passed to the inspected page using InspectorController.wrapCallback.
4:45 PM Changeset in webkit [31889] by Adam Roben
  • 5 edits in trunk/WebCore

Use prototypes/constructors from the inspected page when operating on objects from the inspected page

Reviewed by Tim Hatcher.

  • page/inspector/Console.js: (WebInspector.ConsolePanel._format): Use the Node constructor from the inspected Window with the instanceof operator.
  • page/inspector/ElementsPanel.js: (WebInspector.DOMNodeTreeElement._attributeEditingCommitted): Use the Element prototype from the inspected Window instead of the Element prototype from this Window.
  • page/inspector/inspector.js: (WebInspector.performSearch): Ditto for Document prototype.
  • page/inspector/utilities.js: (Object.type): Now takes an optional Window parameter that is used to find the built-in constructors.
4:45 PM Changeset in webkit [31888] by Adam Roben
  • 2 edits in trunk/WebCore

Don't store objects from the Inspector on CSSStyleRules from the inspected page

Reviewed by Tim Hatcher.

  • page/inspector/StylesSidebarPane.js: (WebInspector.StylesSidebarPane.update): Don't store raw CSSStyleRules from the inspected page in the styleRules array. Instead, always use a wrapper object. This will keep us from setting Inspector objects as properties of inspected objects.
4:05 PM Changeset in webkit [31887] by mjs@apple.com
  • 1 edit
    8 adds in branches/squirrelfish/SunSpider

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

Rubber stamped by Oliver.


  • move ubench tests properly.
  • tests/ubench: Added.
  • tests/ubench/function-closure.js: Added.
  • tests/ubench/function-empty.js: Added.
  • tests/ubench/function-missing-args.js: Added.
  • tests/ubench/function-sum.js: Added.
  • tests/ubench/loop-empty-resolve.js: Added.
  • tests/ubench/loop-empty.js: Added.
  • tests/ubench/loop-sum.js: Added.
3:55 PM Changeset in webkit [31886] by mjs@apple.com
  • 2 edits in branches/squirrelfish/WebKitTools

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

Reviewed by Oliver.


  • added support for --ubench mode
  • Scripts/run-sunspider:
3:47 PM Changeset in webkit [31885] by timothy@apple.com
  • 6 edits in trunk/WebCore

Fixes a regression where clicking a resource URL in the Console would not
show the resource in the Resources panel.

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

Reviewed by Adam Roben.

  • page/inspector/Console.js:

(WebInspector.Console.prototype._messagesClicked): Removed console-message-url
handling to show resources. This is now handled by WebInspector.showResourceForURL.
(WebInspector.ConsoleMessage.prototype.toMessageElement): Add the webkit-html-resource-link
class name to the URL anchor. Also add the line number as a property to the anchor.

  • page/inspector/ResourcesPanel.js:

(WebInspector.ResourcesPanel): Add a reference to the tree element to each calculator.
(WebInspector.ResourcesPanel.prototype.showResource): Select and reveal the resource in
the sidebar. Call showLine on the resource view if it is implemented.
(WebInspector.ResourcesPanel.prototype.closeVisibleResource): Select the current calculator's
tree element in the sidebar.
(WebInspector.ResourcesPanel.prototype._graphSelected): Call closeVisibleResource after
the calculator changes since closeVisibleResource uses the calculator.

  • page/inspector/SourceView.js:

(WebInspector.SourceView.prototype.sourceRow): Early return if the line is null/zero.
(WebInspector.SourceView.prototype.showLine): Renamed from showSourceLine.

  • page/inspector/inspector.css:

(body.console-visible #main-panels): Made the bottom 24px to match
the height of #main-status-bar.
(.console-message-url): Make the color important so it wins over
the .webkit-html-resource-link rule.
(.resource-view .resource-view-content): Made more generic from .image
so all resource views get sized correctly.
(.resource-view.image .resource-view-content): Removed.

  • page/inspector/inspector.js:

(WebInspector.documentClick): Pass the line number from the anchor to
WebInspector.showResourceForURL.
(WebInspector.showResourceForURL): Add line number support. Pass the line
to ResourcesPanel.showResource.
(WebInspector.addMainEventListeners): Use bind for the event listeners.

3:41 PM Changeset in webkit [31884] by mjs@apple.com
  • 2 edits in branches/squirrelfish/SunSpider

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

Rubber stamped by Oliver.

  • sunspider: Don't force --runs=1 in squirrelfish mode any more.
2:55 PM Changeset in webkit [31883] by ggaren@apple.com
  • 12 edits in branches/squirrelfish

JavaScriptCore:

2008-04-14 Gabor Loki <loki@inf.u-szeged.hu>

Reviewed and slightly tweaked by Geoffrey Garen.

Bug 18489: Squirrelfish doesn't build on linux
<https://bugs.webkit.org/show_bug.cgi?id=18489>

  • JavaScriptCore.pri: Add VM into include path and its files into source set
  • VM/JSPropertyNameIterator.cpp: Fix include name
  • VM/Machine.cpp: Add UNLIKELY macro for GCC
  • VM/Machine.h: Add missing includes
  • VM/RegisterFile.cpp: Add missing include
  • kjs/testkjs.pro: Add VM into include path

WebCore:

2008-04-14 Gabor Loki <loki@inf.u-szeged.hu>

Reviewed by Geoffrey Garen.

Bug 18489: Squirrelfish doesn't build on linux
<https://bugs.webkit.org/show_bug.cgi?id=18489>

2:45 PM Changeset in webkit [31882] by mjs@apple.com
  • 3 edits
    1 add
    1 delete in branches/squirrelfish/SunSpider

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

Reviewed by Oliver.

  • make --squirrelfish mode use the real harness, but a reduced set of tests

Also add a new ubench mode which runs the older squirrelfish microbenchmarks.

  • sunspider:
  • tests/LIST-SQUIRRELFISH:
  • tests/LIST-UBENCH: Added.
  • tests/squirrelfish: Moved to tests/ubench
2:31 PM Changeset in webkit [31881] by ggaren@apple.com
  • 1 edit
    1 delete in branches/squirrelfish/SunSpider

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

Reviewed by Maciej Stachowiak.


Removed an unused test.

  • tests/squirrelfish/loop-resolve.js: Removed.
2:20 PM Changeset in webkit [31880] by ggaren@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam Weinig.


Restored OwnPtr in some places where I had removed it previously. We
can have an OwnPtr to an undefined class in a header as long as the
class's destructor isn't in the header.

1:45 PM Changeset in webkit [31879] by ggaren@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam Weinig.


Fixed access to "this" inside dynamic scopes.

  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::registerForLocal): Always return a register for "this", even if we're not optimizing access to other locals. Because "this" is a keyword, it's always in a register and always accessible.
  • VM/CodeGenerator.h: (KJS::CodeGenerator::shouldOptimizeLocals): Factored out a function for determining whether we should optimize access to locals, since eval will need to make this test a little more complicated.
1:18 PM Changeset in webkit [31878] by alp@webkit.org
  • 6 edits
    2 adds
    1 delete in trunk

2008-04-14 Xan Lopez <xan@gnome.org>

Reviewed by Alp Toker.

http://bugs.webkit.org/show_bug.cgi?id=17917
Bug 17917: Cookie support for HTTP soup backend

Initial implementation of cookies for the http soup backend.

Moved CookieJarGtk to CookieJarSoup in network/soup and left the original
one as CookieJarCurl in network/curl.

Bumped the libsoup required version to 2.23 for cookie support.

1:06 PM Changeset in webkit [31877] by alp@webkit.org
  • 8 edits in trunk

2008-04-14 Holger Freyther <zecke@selfish.org>

Reviewed by Alp Toker.

https://bugs.webkit.org/show_bug.cgi?id=18411
Enable Page caching and create FrameViews on the fly

Create the FrameView on the fly and cache pages

  • Keep a copy of the GtkAdjustment to be able to reuse it for the FrameViews
  • Do not initially create a FrameView and update the WebKit code to cope with not having a view.
  • Cache seven pages by default.
  • platform/gtk/ScrollViewGtk.cpp: (WebCore::ScrollView::setGtkAdjustments):
12:55 PM Changeset in webkit [31876] by hyatt@apple.com
  • 7 edits in trunk/WebCore

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

Add a new optimized layout path for positioned objects that move. Also avoid always marking the <html>
object for layout when it has a percentage height, since the RenderView already does that when its size
changes.

Reviewed by mjs

  • rendering/RenderBlock.cpp: (WebCore::RenderBlock::layoutBlockChildren): (WebCore::RenderBlock::layoutPositionedObjects):
  • rendering/RenderBox.h: (WebCore::RenderBox::layoutDoingPositionedMovementOnly):
  • rendering/RenderObject.cpp: (WebCore::RenderObject::RenderObject): (WebCore::RenderObject::setNeedsLayout): (WebCore::RenderObject::setChildNeedsLayout): (WebCore::RenderObject::setNeedsPositionedMovementLayout): (WebCore::RenderObject::setStyle):
  • rendering/RenderObject.h: (WebCore::RenderObject::needsLayout): (WebCore::RenderObject::needsPositionedMovementLayoutOnly): (WebCore::RenderObject::layoutDoingPositionedMovementOnly):
  • rendering/RenderStyle.cpp: (WebCore::positionedObjectMoved): (WebCore::RenderStyle::diff):
  • rendering/RenderStyle.h: (WebCore::RenderStyle::):
12:30 PM Changeset in webkit [31875] by hyatt@apple.com
  • 3 adds in trunk/LayoutTests/platform/mac/fast/gradients

Add generated gradients layout test.

12:29 PM Changeset in webkit [31874] by hyatt@apple.com
  • 1 add in trunk/LayoutTests/fast/gradients/generated-gradients.html

Add generated gradients layout test.

12:28 PM Changeset in webkit [31873] by hyatt@apple.com
  • 16 edits
    2 adds in trunk/WebCore

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

Add support for gradients in the CSS content property.

Reviewed by olliej

Added fast/gradients/generated-gradients.html

  • GNUmakefile.am:
  • WebCore.pro:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • WebCoreSources.bkl:
  • css/CSSParser.cpp: (WebCore::CSSParser::parseContent):
  • css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty): (WebCore::CSSStyleSelector::styleImage): (WebCore::CSSStyleSelector::mapBackgroundImage):
  • css/CSSStyleSelector.h:
  • html/HTMLImageElement.cpp: (WebCore::HTMLImageElement::attach):
  • rendering/RenderContainer.cpp: (WebCore::RenderContainer::updateBeforeAfterContentForContainer):
  • rendering/RenderImage.cpp: (WebCore::RenderImage::RenderImage): (WebCore::RenderImage::setCachedImage): (WebCore::RenderImage::paintReplaced): (WebCore::RenderImage::calcReplacedWidth): (WebCore::RenderImage::calcReplacedHeight): (WebCore::RenderImage::calcAspectRatioWidth): (WebCore::RenderImage::calcAspectRatioHeight):
  • rendering/RenderImage.h: (WebCore::RenderImage::hasImage): (WebCore::RenderImage::image): (WebCore::RenderImage::errorOccurred): (WebCore::RenderImage::usesImageContainerSize): (WebCore::RenderImage::setImageContainerSize): (WebCore::RenderImage::imageHasRelativeWidth): (WebCore::RenderImage::imageHasRelativeHeight): (WebCore::RenderImage::imageSize):
  • rendering/RenderImageGeneratedContent.cpp: Added. (WebCore::RenderImageGeneratedContent::RenderImageGeneratedContent): (WebCore::RenderImageGeneratedContent::~RenderImageGeneratedContent): (WebCore::RenderImageGeneratedContent::setStyleImage):
  • rendering/RenderImageGeneratedContent.h: Added. (WebCore::RenderImageGeneratedContent::hasImage): (WebCore::RenderImageGeneratedContent::image): (WebCore::RenderImageGeneratedContent::errorOccurred): (WebCore::RenderImageGeneratedContent::usesImageContainerSize): (WebCore::RenderImageGeneratedContent::setImageContainerSize): (WebCore::RenderImageGeneratedContent::imageHasRelativeWidth): (WebCore::RenderImageGeneratedContent::imageHasRelativeHeight): (WebCore::RenderImageGeneratedContent::imageSize):
  • rendering/RenderObject.cpp: (WebCore::RenderObject::createObject):
  • rendering/RenderStyle.cpp: (WebCore::StyleCachedImage::imageHasRelativeWidth): (WebCore::StyleCachedImage::imageHasRelativeHeight): (WebCore::StyleCachedImage::usesImageContainerSize): (WebCore::RenderStyle::contentDataEquivalent): (WebCore::RenderStyle::setContent): (WebCore::ContentData::clear):
  • rendering/RenderStyle.h: (WebCore::StyleGeneratedImage::imageHasRelativeWidth): (WebCore::StyleGeneratedImage::imageHasRelativeHeight): (WebCore::StyleGeneratedImage::usesImageContainerSize): (WebCore::BackgroundLayer::setBackgroundImage): (WebCore::ContentData::): (WebCore::RenderStyle::setListStyleImage):
11:48 AM Changeset in webkit [31872] by andersca@apple.com
  • 2 edits in trunk/JavaScriptCore

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

Reviewed by Adam.

Don't leak the prototype class.


  • API/JSClassRef.cpp: (OpaqueJSClass::create):
11:33 AM Changeset in webkit [31871] by sfalken@apple.com
  • 2 edits in trunk/JavaScriptCore

Fix build.

  • wtf/ThreadingWin.cpp:
11:13 AM squirrelfish edited by ggaren@apple.com
(diff)
11:09 AM Changeset in webkit [31870] by beidson@apple.com
  • 4 edits in trunk/WebCore

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

Reviewed by Sam, but Anders too, and he was more thorough in his review
and thats the only reason Sam beat him

Swap the Page and SecurityOrigin arguments when creating a StorageArea.

SecurityOrigin is really the primary identifying characteristic of a StorageArea,
and StorageAreas that represent LocalStorage won't have an owner Page.

  • storage/SessionStorage.cpp: (WebCore::SessionStorage::copy): (WebCore::SessionStorage::storageArea):
  • storage/StorageArea.cpp: (WebCore::StorageArea::create): (WebCore::StorageArea::StorageArea): (WebCore::StorageArea::copy): (WebCore::StorageArea::dispatchStorageEvent): Null check m_page here, as in the future it might be null
  • storage/StorageArea.h:
10:41 AM Changeset in webkit [31869] by mjs@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Adam.


  • fix crash when running SunSpider full harness


When growing the register file's buffer to make space for new globals,
make sure to copy accounting for the fact that the new space is logically
at the beginning of the buffer in this case, instead of at the end as when
growing for a new call frame.

  • VM/RegisterFile.cpp: (KJS::RegisterFile::newBuffer): (KJS::RegisterFile::growBuffer): (KJS::RegisterFile::addGlobalSlots):
  • VM/RegisterFile.h:
10:09 AM Changeset in webkit [31868] by timothy@apple.com
  • 1 edit in trunk/WebCore/English.lproj/InspectorLocalizedStrings.js

Forgot to land InspectorLocalizedStrings.js with my last commit.

10:05 AM Changeset in webkit [31867] by timothy@apple.com
  • 3 edits
    2 adds in trunk/WebCore

Add support for changing the sort order of the resources. The two sorting
methods supported current are Time and Size.

Reviewed by Adam Roben.

  • page/inspector/Images/statusbarMenuButton.png: Added.
  • page/inspector/Images/statusbarMenuButtonSelected.png: Added.
  • page/inspector/ResourcesPanel.js:

(WebInspector.ResourcesPanel): Create the status bar menu button and
setup the event listener to call _changeSortingFunction. Each option in
the select references a sorting function.
(WebInspector.ResourcesPanel.get statusBarItems): Add the sorting menu to the
items returned.
(WebInspector.ResourcesPanel._changeSortingFunction): Set the sorting function
to the selected option's function in the sorting menu.

  • page/inspector/inspector.css: Added CSS rules for select elements in status bars.
10:05 AM Changeset in webkit [31866] by timothy@apple.com
  • 4 edits
    3 adds in trunk/WebCore

Add support for toggling between small and large resource rows

in the Resources panel.

Reviewed by Adam Roben.

  • English.lproj/InspectorLocalizedStrings.js: Added new tooltip string.
  • page/inspector/Images/largerResourcesButtons.png: Added.
  • page/inspector/Images/resourceDocumentIconSmall.png: Added.
  • page/inspector/Images/resourcePlainIconSmall.png: Added.
  • page/inspector/ResourcesPanel.js:

(WebInspector.ResourcesPanel): Create the status bar button and
setup the event listener to call _toggleLargerResources.
(WebInspector.ResourcesPanel.get statusBarItems): Return the status bar button.
(WebInspector.ResourcesPanel._toggleLargerResources): Toggle the class names
for the resources children list and the status bar button.

  • page/inspector/inspector.css: New style rules for small resources

and the status bar item.

9:46 AM Changeset in webkit [31865] by Chris Fleizach
  • 3 edits in trunk/WebCore

<rdar://problem/5854572> REGRESSION: AXPosition seems to be flipped in nightly build
AX was using the wrong method to determine the view to use to create the screen position

9:30 AM Changeset in webkit [31864] by ap@webkit.org
  • 2 edits in trunk/JavaScriptCore

Reviewed by Adam Roben.

https://bugs.webkit.org/show_bug.cgi?id=18488
FastMalloc doesn't release thread-specific data on Windows

  • wtf/ThreadingWin.cpp: (WTF::threadMapMutex): (WTF::initializeThreading): Call threadMapMutex once to initialize the static safely. (WTF::ThreadFunctionInvocation::ThreadFunctionInvocation): Added a structure to wrap thread entry point and arguments. (WTF::wtfThreadEntryPoint): Make sure to end all WTF threads with pthread_exit(), to give pthreads-win32 a chance to call destructors of thread-specific data. (WTF::createThread): Use _beginthreadex instead of CreateThread, because MSDN says so. Also removed a call to CreateEvent, for which I could see no reason at all.
9:24 AM Changeset in webkit [31863] by dsmith@webkit.org
  • 4 edits in trunk/WebCore

2008-04-14 David Smith <catfish.man@gmail.com>

Reviewed by Timothy Hatcher.


  • page/inspector/Resource.js: Change the sorting function to sort by response received time.
  • 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.
  • 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
9:08 AM Changeset in webkit [31862] by ap@webkit.org
  • 2 edits in trunk/JavaScriptCore

Touched a file to make JavaScriptCore.vcproj rebuild.

  • wtf/MathExtras.h:
8:25 AM Changeset in webkit [31861] by Adam Roben
  • 2 edits in trunk/JavaScriptCore

Windows build fix

Rubberstamped by Alexey Proskuryakov.

  • JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Disable the "potentially uninitialized variable" warning for grammar.cpp, as it seems to be incorrect. yylval gets initialized by the lexer, but MSVC doesn't seem to understand this.
6:29 AM QtWebKitContrib edited by Simon Hausmann
(diff)
4:50 AM Changeset in webkit [31860] by jchaffraix@webkit.org
  • 4 edits
    2 adds in trunk

2008-04-14 Julien Chaffraix <jchaffraix@webkit.org>

Reviewed by Ap.

Bug 17403: WebKit Creates Invalid Xhtml Links with Ajax
http://bugs.webkit.org/show_bug.cgi?id=17403

The previous code had callbacks for the normal parsing (full document) and fragment parsing.
The difference was induced by the method we were using which did not accept a xmlParserCtxt.
The code has been refactored to allow us to share the callbacks between the different cases.
A drawback is that we have to use xmlParseContent which is an internal libxml method and thus
some internal intialization is done in WebCore.

Test: fast/parser/ampersand-escaped-parseXMLFragment.xhtml

  • dom/XMLTokenizer.cpp: (WebCore::createStringParser): Moved didInit in the global scope as it is shared by the 2 create methods.

(WebCore::createMemoryParser): Create a memory parser similar to the previous code.
Initialize the xmlParserContext to call xmlParseContent in parseXMLDocumentFragment.

(WebCore::XMLTokenizer::initializeParserContext): Check m_parsingFragment to know
which create method to call.

  • dom/XMLTokenizer.h: Added parseXMLDocumentFragment as a friend of XMLTokenizer.

2008-04-14 Julien Chaffraix <jchaffraix@webkit.org>

Reviewed by Ap.

Layout test for http://bugs.webkit.org/show_bug.cgi?id=17403:
WebKit Creates Invalid Xhtml Links with Ajax

  • fast/parser/ampersand-escaped-parseXMLFragment-expected.txt: Added.
  • fast/parser/ampersand-escaped-parseXMLFragment.xhtml: Added.

Apr 13, 2008:

11:53 PM Changeset in webkit [31859] by rwlbuis@webkit.org
  • 3 edits
    2 adds in trunk

Reviewed by Eric.

http://bugs.webkit.org/show_bug.cgi?id=18230
tspan in link not working

Implement SVG Errata: "The 'a' element may contain any
element that its parent may contain, except itself."

11:23 PM Changeset in webkit [31858] by hyatt@apple.com
  • 3 edits in trunk/WebCore

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

Fix for bug 18466, WebKit exhibits slow performance on Opera DHTML benchmark. Improve layout's rect
invalidation code to only invalidate a single unioned rect once enough individual little rects have
been detected.

Reviewed by olliej

  • page/FrameView.cpp: (WebCore::FrameViewPrivate::reset): (WebCore::FrameView::layout): (WebCore::FrameView::repaintRectangle): (WebCore::FrameView::beginDeferredRepaints): (WebCore::FrameView::endDeferredRepaints):
  • page/FrameView.h:
10:51 PM Changeset in webkit [31857] by eric@webkit.org
  • 2 edits in trunk/WebCore

Reviewed by Oliver.

Fix spelling error in function name, no test case.

  • svg/SVGTextContentElement.cpp: (WebCore::SVGInlineTextBoxQueryWalker::chunkPortionCallback):
10:22 PM Changeset in webkit [31856] by eric@webkit.org
  • 2 edits in trunk/WebCore

Reviewed by Oliver.

Build fix for +SVG_ANIMATION -SVG_FOREIGN_OBJECT build, no tests.

  • svg/SVGAnimateMotionElement.cpp: (WebCore::SVGAnimateMotionElement::hasValidTarget):
7:46 PM Changeset in webkit [31855] by alp@webkit.org
  • 2 edits in trunk/WebCore

2008-04-13 Jan Michael Alonzo <jmalonzo@unpluggable.com>

Reviewed by Oliver Hunt.

http://bugs.webkit.org/show_bug.cgi?id=18239
[Gtk] Build breaks if SVG is enabled but SVG Fonts disabled

  • svg/SVGAltGlyphElement.idl: Add SVG_FONTS in Conditional
6:49 PM Changeset in webkit [31854] by jchaffraix@webkit.org
  • 2 edits in trunk/WebCore

2008-04-13 Julien Chaffraix <jchaffraix@webkit.org>

Reviewed by David.

More SVG filters build fix.

  • svg/graphics/filters/SVGFEImage.cpp: (WebCore::SVGFEImage::~SVGFEImage): (WebCore::SVGFEImage::setCachedImage):
10:47 AM Changeset in webkit [31853] by hyatt@apple.com
  • 2 edits in trunk/WebCore

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

Fix build bustage on the filters SVG code path (not built by default).

  • svg/SVGFEImageElement.cpp: (WebCore::SVGFEImageElement::~SVGFEImageElement): (WebCore::SVGFEImageElement::parseMappedAttribute):
10:38 AM Changeset in webkit [31852] by alp@webkit.org
  • 2 edits in trunk/WebCore

2008-04-13 Dan Winship <danw@gnome.org>

Reviewed by Alp Toker.

http://bugs.webkit.org/show_bug.cgi?id=18391
return body data incrementally from libsoup backend

Fix libsoup backend to pass data to the loader incrementally
rather than all at once at the end.

  • platform/network/soup/ResourceHandleSoup.cpp (ResourceHandle::start): connect to "got-headers" and "got-chunk" signals on the message (gotHeadersCallback): call client->didReceiveResponse() from here (gotChunkCallback): call client->didReceiveData() from here (finishedCallback): renamed from dataCallback. mostly just calls client->didFinishLoading() now.
9:57 AM Changeset in webkit [31851] by mitz@apple.com
  • 2 edits in trunk/WebCore

Reviewed by Jessica Kahn.

  • remove duplicate condition in canHaveChildrenForEditing()
  • editing/htmlediting.cpp: (WebCore::canHaveChildrenForEditing):
8:56 AM Changeset in webkit [31850] by mitz@apple.com
  • 3 edits in trunk/WebCore

Reviewed by Darin Adler.

Test: fast/css/font-weight-1.html

  • platform/graphics/mac/FontCacheMac.mm: (WebCore::toAppKitFontWeight): Adjusted the mapping to cover the AppKit weight range from 2 to 12, because AppKit weight 1 never occurs. The new mapping matches font-weight: n00 to ISO weight Wn.
  • platform/mac/WebFontCache.mm: (betterChoice): Changed the midpoint used when deciding between two candidates that deviate from the desired weight by the same amount.
1:16 AM Changeset in webkit [31849] by hyatt@apple.com
  • 10 edits in trunk/WebCore

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

Memory management cleanup for the new StyleCachedImage and StyleGeneratedImage classes. Make the back end
values hold refptrs to cached front end values. This will avoid malloc churn as RenderStyles get
re-resolved.

Reviewed by olliej

  • css/CSSCursorImageValue.cpp: (WebCore::CSSCursorImageValue::updateIfSVGCursorIsUsed): (WebCore::CSSCursorImageValue::cachedImage):
  • css/CSSCursorImageValue.h:
  • css/CSSImageGeneratorValue.cpp: (WebCore::CSSImageGeneratorValue::CSSImageGeneratorValue): (WebCore::CSSImageGeneratorValue::generatedImage):
  • css/CSSImageGeneratorValue.h:
  • css/CSSImageValue.cpp: (WebCore::CSSImageValue::CSSImageValue): (WebCore::CSSImageValue::~CSSImageValue): (WebCore::CSSImageValue::cachedImage):
  • css/CSSImageValue.h:
  • css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty): (WebCore::CSSStyleSelector::createStyleImage):
  • css/CSSStyleSelector.h:
  • rendering/RenderStyle.h: (WebCore::StyleCachedImage::cachedImage): (WebCore::StyleGeneratedImage::StyleGeneratedImage): (WebCore::StyleGeneratedImage::data):
Note: See TracTimeline for information about the timeline view.