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

Timeline



Dec 26, 2006:

11:46 PM Changeset in webkit [22717] by ggaren
  • 3 edits in branches/WindowsMerge/WebKitWin

Build fix.

  • WebFrame.cpp: Removed willCloseDocument, which is now gone from WebCore::FrameLoaderClient.
  • WebFrame.h: ditto
11:38 PM Changeset in webkit [18430] by ggaren
  • 16 edits in trunk

WebCore:

Reviewed by Eric Seidel.

Fixed <rdar://problem/4740328> Safari crash on quit in _NPN_ReleaseObject
from KJS::Bindings::CInstance::~CInstance


No testcase because we can't open and close windows in DumpRenderTree.


  • loader/FrameLoader.cpp: Removed closeDocument helper function because its only purpose was to call didCloseDocument, which is gone now. (WebCore::FrameLoader::detachFromParent): closeDocument => closeURL, since didCloseDocument is gone now.
  • loader/FrameLoaderClient.h: Removed didCloseDocument because it proved unnecessary and harmful.


  • loader/mac/FrameLoaderMac.mm: (WebCore::FrameLoader::transitionToCommitted): closeDocument => closeURL, since didCloseDocument is gone now.

WebKit:

Reviewed by Eric Seidel.

Fixed <rdar://problem/4740328> Safari crash on quit in _NPN_ReleaseObject
from KJS::Bindings::CInstance::~CInstance


The essence of this change is that WebKit shouldn't meddle in plug-in
lifetime, since WebCore already manages it. The rest is details.


  • Plugins/WebBaseNetscapePluginView.mm: (-[WebBaseNetscapePluginView removeTrackingRect]): Autorelease our window instead of releasing it, since we might hold the last reference to our window, and releasing it immediately would crash AppKit. (-[WebBaseNetscapePluginView resetTrackingRect]):
  • Plugins/WebNetscapePluginEmbeddedView.h:
  • Plugins/WebNetscapePluginEmbeddedView.m: (-[WebNetscapePluginEmbeddedView dataSource]): Use our DOMElement to access our WebFrame, since we don't keep around a direct pointer to our WebFrame anymore.
  • Plugins/WebNullPluginView.h:
  • Plugins/WebNullPluginView.m: (-[WebNullPluginView initWithFrame:error:DOMElement:]): (-[WebNullPluginView dealloc]): (-[WebNullPluginView viewDidMoveToWindow]): Use our DOMElement to access our WebFrame, as above.
  • WebCoreSupport/WebFrameBridge.mm: Don't call _addPlugInView because it doesn't exist anymore. Do pass a DOMElement to WebNullPluginView's initializer, so it can access its frame like WebNetscapePluginEmbeddedView does. (-[WebFrameBridge viewForPluginWithURL:attributeNames:attributeValues:MIMEType:DOMElement:loadManually:]): (-[WebFrameBridge viewForJavaAppletWithFrame:attributeNames:attributeValues:baseURL:DOMElement:]):
  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebFrameLoaderClient.mm: Removed didCloseDocument. It had two purposes -- one unnecessary, one harmful: (1) NULL out plug-ins' weak references to their frames. Unnecessary. Having plug-ins access their frames through their DOM elements solves this problem. (2) Unload plug-ins. Harmful. If a plug-in unloads before WebCore is done with it, WebCore will access unmapped memory. Also unnecessary. WebCore Widgets take care of calling -removeFromSuperview on their NSViews, which is sufficient for stopping plug-ins.
  • WebKit.xcodeproj/project.pbxproj: Made WebNullPluginView.m ObjC++.
  • WebView/WebFrame.mm: Removed _addPlugInView, since it was only used to call -setWebFrame, which is gone. (-[WebFramePrivate dealloc]):
  • WebView/WebFrameInternal.h: Removed plugInViews, since it was only used by _addPlugInView, which is gone.
8:13 PM Changeset in webkit [18429] by eseidel
  • 6 edits
    4 adds in trunk

2006-12-26 Eric Seidel <eric@webkit.org>

Reviewed by olliej.

ASSERT while loading SVG map
http://bugs.webkit.org/show_bug.cgi?id=11987

  • ksvg2/css/SVGCSSParser.cpp: remove a few .impl() calls previously missed. (WebCore::CSSParser::parseSVGValue): (WebCore::CSSParser::parseSVGPaint): (WebCore::CSSParser::parseSVGColor):
  • ksvg2/misc/KCanvasRenderingStyle.cpp: handle invalid colors (WebCore::KSVGPainterFactory::fillPaintServer): (WebCore::KSVGPainterFactory::strokePaintServer):
7:13 PM Changeset in webkit [18428] by eseidel
  • 29 edits in trunk/WebCore

2006-12-26 Eric Seidel <eric@webkit.org>

Reviewed by ggaren.

No test cases changed.


Remove unnecessary (and inefficient) .impl() and .deprecatedString() calls.
http://bugs.webkit.org/show_bug.cgi?id=11989

  • bindings/js/kjs_dom.cpp: (KJS::DOMNodeList::getOwnPropertySlot):
  • dom/Document.cpp: (WebCore::Document::createAttributeNS):
  • dom/Element.cpp: (WebCore::Element::getAttributeNS): (WebCore::Element::setAttribute): (WebCore::Element::setAttributeNS): (WebCore::Element::removeAttributeNS): (WebCore::Element::getAttributeNode): (WebCore::Element::getAttributeNodeNS): (WebCore::Element::hasAttribute): (WebCore::Element::hasAttributeNS):
  • dom/NamedAttrMap.cpp: (WebCore::NamedAttrMap::getNamedItemNS): (WebCore::NamedAttrMap::removeNamedItemNS):
  • dom/ProcessingInstruction.cpp: (WebCore::ProcessingInstruction::checkStyleSheet):
  • html/HTMLBaseElement.cpp: (WebCore::HTMLBaseElement::process):
  • html/HTMLEmbedElement.cpp: (WebCore::HTMLEmbedElement::parseMappedAttribute):
  • html/HTMLEmbedElement.h:
  • html/HTMLHRElement.cpp: (WebCore::HTMLHRElement::parseMappedAttribute):
  • html/HTMLScriptElement.cpp: (WebCore::HTMLScriptElement::insertedIntoDocument):
  • html/HTMLStyleElement.cpp: (WebCore::HTMLStyleElement::parseMappedAttribute):
  • ksvg2/svg/SVGAnimateElement.cpp: (WebCore::SVGAnimateElement::handleTimerEvent):
  • ksvg2/svg/SVGComponentTransferFunctionElement.cpp: (WebCore::SVGComponentTransferFunctionElement::parseMappedAttribute):
  • ksvg2/svg/SVGFEColorMatrixElement.cpp: (WebCore::SVGFEColorMatrixElement::parseMappedAttribute):
  • ksvg2/svg/SVGFEImageElement.cpp: (WebCore::SVGFEImageElement::parseMappedAttribute):
  • ksvg2/svg/SVGFitToViewBox.cpp: (WebCore::SVGFitToViewBox::parseMappedAttribute):
  • ksvg2/svg/SVGImageElement.cpp: (WebCore::SVGImageElement::parseMappedAttribute):
  • ksvg2/svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::fillAttributesFromReferencePattern): (WebCore::SVGPatternElement::notifyAttributeChange):
  • ksvg2/svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::notifyAttributeChange):
  • ksvg2/svg/SVGStopElement.cpp: (WebCore::SVGStopElement::parseMappedAttribute):
  • ksvg2/svg/SVGTRefElement.cpp: (WebCore::SVGTRefElement::updateReferencedText):
  • ksvg2/svg/SVGTests.cpp: (WebCore::SVGTests::parseMappedAttribute):
  • ksvg2/svg/SVGTextPositioningElement.cpp: (WebCore::SVGTextPositioningElement::parseMappedAttribute):
  • ksvg2/svg/SVGUseElement.cpp: (WebCore::SVGUseElement::closeRenderer):
  • ksvg2/svg/SVGViewElement.cpp: (WebCore::SVGViewElement::parseMappedAttribute):
  • page/Frame.cpp: (WebCore::Frame::selectionComputedStyle):
  • rendering/RenderPartObject.cpp: (WebCore::RenderPartObject::updateWidget):
  • rendering/SVGRenderTreeAsText.cpp: (WebCore::writeRenderResources):
4:14 PM Changeset in webkit [18427] by eseidel
  • 26 adds in trunk/PageLoadTests

2006-12-26 Eric Seidel <eric@webkit.org>

Reviewed by bradee-oh.


Add new PageLoadTests directory (this one)
Add LICENSES file to explain where each SVG came from.

  • ChangeLog: Added.
  • svg/LICENSES: Added.
  • svg/files/33041-Samurai.svg: Added.
  • svg/files/42470-flower_from_my_garden_v2.svg: Added.
  • svg/files/Harvey_Rayner.svg: Added.
  • svg/files/az-lizard_benji_park_01.svg: Added.
  • svg/files/bamboo_01.svg: Added.
  • svg/files/cacuts_01.svg: Added.
  • svg/files/cowboy.svg: Added.
  • svg/files/crawfish2_ganson.svg: Added.
  • svg/files/deb9frac1.svg: Added.
  • svg/files/food_leif_lodahl_01.svg: Added.
  • svg/files/france.svg: Added.
  • svg/files/francobollo_gnome_ezechi_02.svg: Added.
  • svg/files/gearflowers.svg: Added.
  • svg/files/hereGear4.svg: Added.
  • svg/files/mtsthelens.svg: Added.
  • svg/files/mtsthelens0.jpg: Added.
  • svg/files/world-iso.svg: Added.
  • svg/files/worldcup.svg: Added.
  • svg/svg.pltsuite: Added.
4:12 PM Changeset in webkit [18426] by eseidel
  • 1 edit
    1 add in trunk/WebKitTools

2006-12-26 Eric Seidel <eric@webkit.org>

Reviewed by bradee-oh.


Add very simple run-pageloadtest script for running SVG page load test.

  • Scripts/run-pageloadtest: Added.
4:03 PM Changeset in webkit [18425] by zimmermann
  • 7 edits in trunk

Reviewed by Oliver.

Add patternContentUnits support, and cleanup SVGPaintServerGradientCg.cpp
Fixes coords-units-01-b.svg

2:10 PM Changeset in webkit [18424] by ggaren
  • 11 edits in trunk

JavaScriptCore:

Reviewed by Eric Seidel.

Some cleanup in preparation for fixing <rdar://problem/4740328> Safari
crash on quit in _NPN_ReleaseObject from KJS::Bindings::CInstance::~CInstance

  • bindings/c/c_instance.cpp:
  • bindings/c/c_instance.h: Removed unused copy constructor and assignment operator. They made tracking data flow more difficult. Unused code is also dangerous because it can succumb to bit rot with the stealth of a Ninja.


Replaced #include with forward declaration to reduce header dependency.


  • bindings/npruntime.cpp: Sorted #includes. (_NPN_GetStringIdentifier): Replaced assert with ASSERT. (_NPN_GetStringIdentifiers): ditto (_NPN_ReleaseVariantValue): ditto (_NPN_CreateObject): ditto (_NPN_RetainObject): ditto (_NPN_ReleaseObject): ditto (_NPN_DeallocateObject): ditto

WebKit:

Reviewed by Eric Seidel.

Some cleanup in preparation for fixing <rdar://problem/4740328> Safari
crash on quit in _NPN_ReleaseObject from KJS::Bindings::CInstance::~CInstance


Renamed "installedPlugins" to "sharedDatabase." This better follows
the Cocoa naming scheme, and calls out the key attribute that produced this
crash -- namely, that the database is shared throughout the process.


-installedPlugins is actually a part of SPI, but a global search showed
that it had no users.

  • Plugins/WebPluginDatabase.h:
  • Plugins/WebPluginDatabase.m: (+[WebPluginDatabase sharedDatabase]): (-[WebPluginDatabase refresh]): (-[WebPluginDatabase _plugInPaths]): (-[WebPluginDatabase _removePlugin:]):
  • WebCoreSupport/WebViewFactory.m: (-[WebViewFactory pluginsInfo]): (-[WebViewFactory refreshPlugins:]): (-[WebViewFactory pluginSupportsMIMEType:]):
  • WebView/WebView.mm: (+[WebView _supportedMIMETypes]): (+[WebView _viewClass:andRepresentationClass:forMIMEType:]): (-[WebView _close]): (-[WebView _pluginForMIMEType:]): (-[WebView _pluginForExtension:]): (-[WebView _isMIMETypeRegisteredAsPlugin:]):

WebKitTools:

Reviewed by Eric Seidel.

Some cleanup in preparation for fixing <rdar://problem/4740328> Safari
crash on quit in _NPN_ReleaseObject from KJS::Bindings::CInstance::~CInstance


(dumpRenderTree): Renamed "installedPlugins" to "sharedDatabase."

12:03 PM Changeset in webkit [18423] by eseidel
  • 12 edits in trunk/WebCore

2006-12-26 Eric Seidel <eric@eseidel.com>

Reviewed by ggaren

No test cases changed.


Remove unneeded isPaintingText() and activeClient() from SVGPaintServer system

  • platform/graphics/svg/SVGPaintServer.cpp: (WebCore::SVGPaintServer::SVGPaintServer):
  • platform/graphics/svg/SVGPaintServer.h:
  • platform/graphics/svg/SVGPaintServerGradient.h:
  • platform/graphics/svg/SVGPaintServerPattern.h:
  • platform/graphics/svg/SVGPaintServerSolid.h:
  • platform/graphics/svg/cg/SVGPaintServerCg.cpp: (WebCore::SVGPaintServer::teardown):
  • platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp: (WebCore::SVGPaintServerGradient::teardown): (WebCore::SVGPaintServerGradient::setup):
  • platform/graphics/svg/cg/SVGPaintServerPatternCg.cpp: (WebCore::SVGPaintServerPattern::setup): (WebCore::SVGPaintServerPattern::teardown):
  • platform/graphics/svg/cg/SVGPaintServerSolidCg.cpp: (WebCore::SVGPaintServerSolid::setup):
  • rendering/RenderPath.cpp: (WebCore::RenderPath::paint):
  • rendering/SVGInlineFlowBox.cpp: (WebCore::paintSVGInlineFlow):
10:12 AM Changeset in webkit [18422] by ggaren
  • 7 edits in trunk

WebCore:

Reviewed by Adam Roben.


Fixed <rdar://problem/4778898> REGRESSION: crash in getInstanceForView()
when quitting from kcbs.com


No testcase because we can't open and close windows in DRT.


The crash was caused by deallocating plug-ins that were later referenced
in the unload event handler.

  • loader/FrameLoader.cpp: (WebCore::FrameLoader::closeDocument): Call didCloseDocument after closing instead of before, so plugins don't get deallocated until the document has been destroyed and all event handlers have fired.


  • loader/FrameLoaderClient.h: Renamed "willCloseDocument" to "didCloseDocument", since we call it after closing now.

WebKit:

Reviewed by Adam Roben.


Fixed <rdar://problem/4778898> REGRESSION: crash in getInstanceForView()
when quitting from kcbs.com

No testcase because we can't open and close windows in DRT.

The crash was caused by deallocating plug-ins that were later referenced
in the unload event handler.

  • Plugins/WebBaseNetscapePluginView.mm: Don't call stop on ourselves because we may destroy our plugin before the unload handler fires. Also, we don't need to, since didCloseDocument will do it for us.

(-[WebBaseNetscapePluginView addWindowObservers]): We don't need to listen
for windowWillClose anymore, since we don't want to call -stop on ourselves.
(-[WebBaseNetscapePluginView removeWindowObservers]): ditto.

  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebFrameLoaderClient.mm: (WebFrameLoaderClient::didCloseDocument): Renamed from "willCloseDocument."
8:26 AM Changeset in webkit [18421] by eseidel
  • 18 edits
    4 adds in trunk

2006-12-26 Eric Seidel <eric@webkit.org>

Reviewed by rwlbuis.

Replace bogus SVGLength::isFraction() method with valueAsPercentage() to fix:
http://bugs.webkit.org/show_bug.cgi?id=11973


  • ksvg2/svg/SVGLength.cpp: (WebCore::SVGLength::valueInSpecifiedUnits): remove extra spaces (WebCore::SVGLength::valueAsPercentage): new method
  • ksvg2/svg/SVGLength.h:
  • ksvg2/svg/SVGLinearGradientElement.cpp: (WebCore::SVGLinearGradientElement::buildGradient): use valueAsPercentage()
  • ksvg2/svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::drawPatternContentIntoTile): return if malloc fails
  • ksvg2/svg/SVGRadialGradientElement.cpp: (WebCore::SVGRadialGradientElement::buildGradient): use valueAsPercentage()
  • platform/graphics/cg/GraphicsContextCG.cpp: (WebCore::GraphicsContext::createImageBuffer): return 0 if malloc fails
  • platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp: (WebCore::SVGPaintServerGradient::setup): return if malloc fails
  • platform/graphics/svg/cg/SVGResourceMaskerCg.mm: (WebCore::SVGResourceMasker::applyMask): add comment about possible crash

Dec 25, 2006:

9:36 PM Changeset in webkit [18420] by ggaren
  • 6 edits in trunk/WebKit

More "plugin" => "pluginPackage" renaming that I forgot to check in.


  • Plugins/WebBaseNetscapePluginView.h:
  • Plugins/WebBaseNetscapePluginView.mm: (-[WebBaseNetscapePluginView setPluginPackage:]):
  • Plugins/WebNetscapePluginEmbeddedView.h:
  • Plugins/WebNetscapePluginEmbeddedView.m: (-[WebNetscapePluginEmbeddedView initWithFrame:pluginPackage:URL:baseURL:MIMEType:attributeKeys:attributeValues:loadManually:DOMElement:]):
  • WebCoreSupport/WebFrameBridge.mm: (-[WebFrameBridge viewForPluginWithURL:attributeNames:attributeValues:MIMEType:DOMElement:loadManually:]): (-[WebFrameBridge viewForJavaAppletWithFrame:attributeNames:attributeValues:baseURL:DOMElement:]):
9:24 PM Changeset in webkit [18419] by ggaren
  • 2 edits in trunk/WebKit

Reviewed by Eric Seidel.


Fixed crash when opening view source window.

  • WebView/WebView.mm: (-[WebView initWithCoder:]): Don't use the WebView until calling _commonInitialization...
7:43 PM Changeset in webkit [22716] by ggaren
  • 2 edits in branches/WindowsMerge/WebCore

Fixed build. Tsk, tsk, Oliver.

  • WebCore.vcproj/WebCore.vcproj:
5:44 PM Changeset in webkit [18418] by zimmermann
  • 3 edits
    4 adds in trunk

Reviewed by Oliver.

In the DOMParser class, we have to create content-type specific
documents, instead of a pure "Document" object. Real-life SVG
files us this way to convert strings "<svg><rect x=...></svg>
to a new Document structure.

Add new testcase dynamic-svg-document-creation.svg.

5:30 PM Changeset in webkit [22715] by ggaren
  • 9 edits in branches/WindowsMerge

WebCoreWin:

Reviewed by Oliver Hunt.

Removed WebCoreSettings, cleaned up WebCore::Settings.

  • WebCore.vcproj/WebCore.vcproj: Added Settings.cpp to the project.
  • bridge/win/FrameWin.cpp: Updated to use new preferences names. (WebCore::FrameWin::bindingRootObject): (WebCore::FrameWin::windowScriptNPObject):
  • loader/win/FrameLoaderWin.cpp: ditto. (WebCore::FrameLoader::partClearedInBegin):
  • plugins/win/PluginViewWin.cpp: ditto. (WebCore::PluginViewWin::load):

WebKitWin:

Reviewed by Oliver Hunt.

Removed WebCoreSettings, cleaned up WebCore::Settings.

  • WebFrame.cpp: (WebFrame::initWithWebFrameView): Used core() here, now that WebView::settings() is gone.
  • WebView.cpp: (WebView::updateWebCoreSettingsFromPreferences): Simplified this code, now that WebCore handles most of it.
  • WebView.h: Removed settings() accessor. Settings belong to the WebCore page, not the WebView.
5:22 PM Changeset in webkit [18417] by ggaren
  • 37 edits
    1 add
    2 deletes in trunk

WebCore:

Reviewed by Oliver Hunt.

Removed WebCoreSettings, cleaned up WebCore::Settings.

  • WebCore.exp: Exported Settings for use by WebKit, removed WebCoreSettings class.


  • WebCore.xcodeproj/project.pbxproj: Removed WebCoreSetttings.h/.mm. Added Settings.cpp.
  • page/Frame.cpp: Removed cruft that duplicated Settings data. Callers now call through to Settings to get Settings data.
  • page/Page.cpp: Added Settings data member, to replace the one that WebView used to hold.
  • page/Settings.cpp: Added.
  • page/Settings.h:
    • Renamed all functions to match WebKit API. Renamed all variables to match functions. Favorite old name: "isPluginsEnabled."
    • Moved EditableLinkBehavior outside of the class. Having it inside just made it harder to type.
    • Merged in old WebCoreSettings functionality, like guarding against re-setting to the same value, and making sure to update page layout.
    • Paired setters and getters, putting setters first.

WebKit:

Reviewed by Oliver Hunt.


Removed WebCoreSettings, cleaned up WebCore::Settings.

  • WebView/WebFrame.mm: Added helper functions for converting between WebKitEditableLinkBehavior and WebCore::EditableLinkBehavior. I'm not sure that this is the best place for these functions, but it's where all the other functions like them reside. (core): (kit):
  • WebView/WebFrameInternal.h:
  • WebView/WebView.mm: Removed uses of WebCoreSettings. Replaced with direct use of underlying page's settings.
4:45 PM Changeset in webkit [18416] by zimmermann
  • 5 edits in trunk/WebCore

Reviewed by Oliver.
Fix some minor style issues.

4:37 PM Changeset in webkit [18415] by zimmermann
  • 22 edits
    9 adds in trunk

Reviewed by Oliver.

Fixes: http://bugs.webkit.org/show_bug.cgi?id=11963
Fixes: http://bugs.webkit.org/show_bug.cgi?id=11123

Fix SVGList JS wrappers, which operate on POD types (ie. Point).
There exists a special JSSVGPODTypeWrapperCreatorForList class now,
which operators on specialized SVGPODList's. It makes it possible
to support stuff like "myList.getItem(0).value = 200", for POD lists.

Adding two new testcases demonstrating the usage of SVG DOM & SVGAnimatedPoints.

2:32 PM Changeset in webkit [18414] by ggaren
  • 8 edits in trunk/WebKit

Reviewed by Oliver Hunt.


Some refactoring in preparation for fixing <rdar://problem/4778898>
REGRESSION: crash in getInstanceForView() when quitting from kcbs.com


Two renames:

  • "plugin" => "pluginPackage" (since the type is WebNetscapePluginPackage *)
  • "instance" and/or "pluginPointer" => plugin (since NPP is an opaque handle to a plug-in)


Removed braces around single-line 'if' statements.


Made plugin a pointer instead of an inline ivar. This allows us to NULL
it out once we call NPP_Destroy on it.


Added helper functions for creating and destroying plugin. The destroy function
NULLs out plugin, which helps with debugging.


(-[WebBaseNetscapePluginView willCallPlugInFunction]): Added an ASSERT
to catch attempts to call functions on destroyed plug-ins.

(-[WebBaseNetscapePluginView _createPlugin]): New helper function.
(-[WebBaseNetscapePluginView _destroyPlugin]): New helper function.

10:37 AM Changeset in webkit [18413] by ap
  • 3 edits in trunk/WebCore

Reviewed by Maciej.

http://bugs.webkit.org/show_bug.cgi?id=10313
Reproducible crash when doing importStylesheet in javascript with
xsl files that use xsl:import

This doesn't fully address the bug, but makes a couple of steps
in that direction.

  • xml/XSLTProcessor.cpp: (WebCore::transformToString): Set m_stylesheet even if it's created implicitly, rather than passed from outside. Always reset it in the end (this doesn't affect Document::applyXSLTransform(), which was the only user of setXSLStylesheet()).
  • xml/xmlhttprequest.cpp: (WebCore::XMLHttpRequest::getResponseXML): Set the loaded document's URL.
Note: See TracTimeline for information about the timeline view.