oliver@apple.com [Thu, 22 May 2008 09:53:25 +0000 (09:53 +0000)]
Roll out r34020 as it causes recursion tests to fail.
RS=Maciej
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@34024
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
slewis@apple.com [Thu, 22 May 2008 09:36:19 +0000 (09:36 +0000)]
2008-05-22 Stephanie Lewis <slewis@apple.com>
Reviewed by Dan.
Fix <rdar://problem/5952405>. The unbeforeunload count cannot be cleared when it is dispatched because it is possible to be called again. Clear it after the unload event is dispatched.
Test: fast/events/onunload-clears-onbeforeunload.html
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::stopLoading):
* page/Frame.cpp:
(WebCore::Frame::shouldClose):
implement the beforeUnload UI delegate so that DRT will dispatch beforeunload events.
* DumpRenderTree/mac/UIDelegate.mm:
(-[UIDelegate webView:runBeforeUnloadConfirmPanelWithMessage:initiatedByFrame:]):
* DumpRenderTree/win/UIDelegate.cpp:
(SearchableWebViewHost::runBeforeUnloadConfirmPanelWithMessage):
add test to test for beforeunload event handlers being removed after they have been fired.
* fast/events/onunload-clears-onbeforeunload-expected.txt: Added.
* fast/events/onunload-clears-onbeforeunload.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@34023
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
oliver@apple.com [Thu, 22 May 2008 09:34:57 +0000 (09:34 +0000)]
Don't leak the SymbolTable when compiling eval code.
Reviewed by Mark
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@34022
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
hausmann@webkit.org [Thu, 22 May 2008 09:07:01 +0000 (09:07 +0000)]
2008-05-22 Simon Hausmann <hausmann@webkit.org>
Reviewed by Oliver.
Qt build fixes.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@34021
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ggaren@apple.com [Thu, 22 May 2008 08:37:35 +0000 (08:37 +0000)]
2008-05-22 Geoffrey Garen <ggaren@apple.com>
Reviewed by Adam Roben.
Removed the old recursion guard mechanism, since squirrelfish has its
own mechanism. Also removed some old JS call tracing code, since we
have other ways to do that, too.
SunSpider reports no change.
* kjs/object.cpp:
(KJS::JSObject::call):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@34020
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
aroben@apple.com [Thu, 22 May 2008 08:19:21 +0000 (08:19 +0000)]
Massively speed up date-format-tofte with the debugger attached
On a debug Windows build (I know, hardly a good testcase) this patch
makes this test run 57.25x as fast.
Reviewed by Mark Rowe.
* page/inspector/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype.reset): Clear the
_scriptsForURLsInFilesSelect object.
(WebInspector.ScriptsPanel.prototype._showScriptOrResource): Instead
of looping over all the options in the select to find the option we
want, get the script object from _scriptsForURLsInFilesSelect and get
the option element from the script object.
(WebInspector.ScriptsPanel.prototype._addScriptToFilesMenu): Use
_scriptsForURLsInFilesSelect to cache the script objects. Store the
option element for each script on the script object so we can quickly
retrieve it later.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@34019
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
aroben@apple.com [Thu, 22 May 2008 08:18:49 +0000 (08:18 +0000)]
Remove some dead code from ScriptsPanel.js
Reviewed by Mark Rowe.
* page/inspector/ScriptsPanel.js:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@34018
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mjs@apple.com [Thu, 22 May 2008 08:17:38 +0000 (08:17 +0000)]
JavaScriptCore:
2008-05-22 Maciej Stachowiak <mjs@apple.com>
Reviewed by Oliver.
- fixed <rdar://problem/5954979> crash on celtic kane JS benchmark
* kjs/nodes.cpp:
(KJS::WithNode::emitCode):
(KJS::TryNode::emitCode):
LayoutTests:
2008-05-22 Maciej Stachowiak <mjs@apple.com>
Reviewed by Oliver.
- test case for <rdar://problem/5954979> crash on celtic kane JS benchmark
* fast/js/try-catch-crash-expected.txt: Added.
* fast/js/try-catch-crash.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@34017
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kmccullough@apple.com [Thu, 22 May 2008 06:21:59 +0000 (06:21 +0000)]
2008-05-21 Kevin McCullough <kmccullough@apple.com>
Reviewed by Maciej and Geoff.
<rdar://problem/5951561> Turn on JavaScript Profiler
-As part of the effort to turn on the profiler it would be helpful if it
did not need ExecStates to represent the stack location of the currently
executing statement.
-We now create each node as necessary with a reference to the current
node and each node knows its parent so that the tree can be made without
the entire stack.
* profiler/Profile.cpp:
(KJS::Profile::Profile): The current node starts at the head.
(KJS::Profile::stopProfiling): The current node is cleared when profiling
stops.
(KJS::Profile::willExecute): The current node either adds a new child or
starts and returns a reference to an already existing child if the call
ID that is requested already exists.
(KJS::Profile::didExecute): The current node finishes and returns its
parent.
* profiler/Profile.h: Use a single callIdentifier instead of a vector
since we no longer use the whole stack.
* profiler/ProfileNode.cpp: Now profile nodes keep a reference to their
parent.
(KJS::ProfileNode::ProfileNode): Initialize the parent.
(KJS::ProfileNode::didExecute): Record the time and return the parent.
(KJS::ProfileNode::addOrStartChild): If the given callIdentifier is
already a child, start it and return it, otherwise create a new one and
return that.
(KJS::ProfileNode::stopProfiling): Same logic, just use the new function.
* profiler/ProfileNode.h: Utilize the parent.
(KJS::ProfileNode::create):
(KJS::ProfileNode::parent):
* profiler/Profiler.cpp:
(KJS::Profiler::startProfiling): Here is the only place where the
ExecState is used to figure out where in the stack the profiler is
currently profiling.
(KJS::dispatchFunctionToProfiles): Only send one CallIdentifier instead
of a vector of them.
(KJS::Profiler::willExecute): Ditto.
(KJS::Profiler::didExecute): Ditto.
(KJS::createCallIdentifier): Create only one CallIdentifier.
(KJS::createCallIdentifierFromFunctionImp): Ditto.
* profiler/Profiler.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@34013
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
aroben@apple.com [Thu, 22 May 2008 05:59:36 +0000 (05:59 +0000)]
Fix Bug 19178: Inspector should support sorting resources by latency
<https://bugs.webkit.org/show_bug.cgi?id=19178>
I replaced "Sort by Time" with the following sorting options:
- Sort by Start Time
- Sort by Response Time
- Sort by End Time
- Sort by Duration
- Sort by Latency
You can no longer sort by Size when looking at the Time graph, and you
can't use any of the time-based sorting functions when looking at the
Size graph.
Reviewed by Tim Hatcher.
* page/inspector/Resource.js:
(WebInspector.Resource.prototype.get duration): Added.
(WebInspector.Resource.prototype.get latency): Added.
(WebInspector.Resource.CompareByStartTime): Added.
(WebInspector.Resource.CompareByResponseReceivedTime): Added.
(WebInspector.Resource.CompareByEndTime): Added.
(WebInspector.Resource.CompareByDuration): Added.
(WebInspector.Resource.CompareByLatency): Added.
* page/inspector/ResourcesPanel.js:
(WebInspector.ResourcesPanel):
- Each graph sidebar item now holds a list of sorting options
- Graph sidebar items no longer have a calculator property. This is
stored on the sorting options instead, to allow each kind of
sorting to have a different calculator.
- The sortingSelectElement starts out empty, and is populated in
_graphSelected
- The sortingFunction starts out uninitialized and is set as a
side-effect of _graphSelected.
(WebInspector.ResourcesPanel.prototype.set calculator): Don't do
anything if the calculator hasn't changed.
(WebInspector.ResourcesPanel.prototype.closeVisibleResource): Use the
_lastSelectedGraphTreeElement property instead of getting the graph
element from the calculator.
(WebInspector.ResourcesPanel.prototype._graphSelected):
- Store the tree element in the _lastSelectedGraphTreeElement
property
- Popuplate sortingSelectElement with the sortingOptions and select
the option that was last selected
(WebInspector.ResourcesPanel.prototype._changeSortingFunction): Set
our calculator from the sorting option.
(WebInspector.ResourceTimeCalculator): Renamed from
ResourceTransferTimeCalculator. Now takes a parameter to specify
whether the bars should all start at zero.
(WebInspector.ResourceTimeCalculator.prototype.computeBarGraphPercentages):
Take this.startAtZero into account.
(WebInspector.ResourceTimeCalculator.prototype.updateBoundries):
Abstracted the lower/upper bounds of a resource into methods.
(WebInspector.ResourceTimeCalculator.prototype._lowerBound): Added.
(WebInspector.ResourceTimeCalculator.prototype._upperBound): Added.
(WebInspector.ResourceTransferTimeCalculator): Added. This is now a
subclass of ResourceTimeCalculator
(WebInspector.ResourceTransferDurationCalculator): Added.
(WebInspector.ResourceSidebarTreeElement.CompareByAscendingStartTime): Added.
(WebInspector.ResourceSidebarTreeElement.CompareByAscendingResponseReceivedTime): Added.
(WebInspector.ResourceSidebarTreeElement.CompareByAscendingEndTime): Added.
(WebInspector.ResourceSidebarTreeElement.CompareByDescendingDuration): Added.
(WebInspector.ResourceSidebarTreeElement.CompareByDescendingLatency): Added.
(WebInspector.ResourceSidebarTreeElement.CompareByDescendingSize):
Changed to call CompareBySize.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@34012
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
aroben@apple.com [Thu, 22 May 2008 05:59:24 +0000 (05:59 +0000)]
Fix Bug 19173: Tool tips for Inspector debugger status bar buttons are wrong/missing
<https://bugs.webkit.org/show_bug.cgi?id=19173>
Reviewed by Tim Hatcher.
* manual-tests/inspector/debugger-status-bar-buttons-state.html:
Added.
* page/inspector/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype._toggleDebugging): Call
_clearInterface (which updates the buttons' tool tips) after
attaching/detaching the debugger so that the buttons will reflect the
new state.
(WebInspector.ScriptsPanel.prototype._updatePauseOnExceptionsButton):
Set the title of the pauseOnExceptionsButton, not the debuggingButton.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@34011
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
aroben@apple.com [Thu, 22 May 2008 05:58:51 +0000 (05:58 +0000)]
Fix Bug 19153: Inspector should support console.debug
WebCore:
Fix Bug 19153: Inspector should support console.debug
<https://bugs.webkit.org/show_bug.cgi?id=19153>
<rdar://problem/5950856>
Reviewed by Tim Hatcher.
Test: manual-tests/inspector/console-log-formatting.html
* bindings/js/JSConsoleCustom.cpp:
(WebCore::JSConsole::debug): Added.
* manual-tests/inspector/console-log-formatting.html: Changed to test
console.debug as well.
* page/Console.cpp:
(WebCore::Console::debug): Added. Just calls through to log().
* page/Console.h:
* page/Console.idl: Added debug() declaration.
LayoutTests:
Update window-properties results for new console functions
Reviewed by Tim Hatcher.
* fast/dom/Window/window-properties-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@34010
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Thu, 22 May 2008 05:19:01 +0000 (05:19 +0000)]
2008-05-21 Darin Adler <darin@apple.com>
Reviewed by Maciej.
- https://bugs.webkit.org/show_bug.cgi?id=19180
speed up the < operator for the case when both values are integers
Makes standalone SunSpider 1.022x faster.
* VM/Machine.cpp:
(KJS::jsLess): Add a special case for when both are numbers that fit in a JSImmediate.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@34009
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mjs@apple.com [Thu, 22 May 2008 05:18:36 +0000 (05:18 +0000)]
Check in files I forgot to last time.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@34008
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mjs@apple.com [Thu, 22 May 2008 05:02:47 +0000 (05:02 +0000)]
JavaScriptCore:
2008-05-21 Maciej Stachowiak <mjs@apple.com>
Reviewed by Oliver and Sam.
- fixed <rdar://problem/5815631> REGRESSION (r31239): Multiscope optimisation of function calls results in incorrect this value (breaks tvtv.de)
Track global this value in the scope chain so we can retrieve it
efficiently but it follows lexical scope properly.
* kjs/ExecState.h:
(KJS::ExecState::globalThisValue):
* kjs/JSGlobalObject.h:
(KJS::JSGlobalObject::JSGlobalObjectData::JSGlobalObjectData):
* kjs/function_object.cpp:
(KJS::FunctionObjectImp::construct):
* kjs/scope_chain.h:
(KJS::ScopeChainNode::ScopeChainNode):
(KJS::ScopeChainNode::globalThisObject):
(KJS::ScopeChainNode::push):
(KJS::ScopeChain::ScopeChain):
LayoutTests:
2008-05-21 Maciej Stachowiak <mjs@apple.com>
Reviewed by Oliver and Sam.
- tests for <rdar://problem/5815631> REGRESSION (r31239): Multiscope optimisation of function calls results in incorrect this value (breaks tvtv.de)
* fast/frames/cross-site-this-expected.txt: Added.
* fast/frames/cross-site-this.html: Added.
* fast/frames/resources/cross-site-this-helper.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@34007
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
adele@apple.com [Thu, 22 May 2008 04:57:47 +0000 (04:57 +0000)]
WebKit/win:
2008-05-21 Adele Peterson <adele@apple.com>
Reviewed by Adam.
WebKit part of for <rdar://problem/5787733> fast/dom/HTMLDocument/hasFocus.html fails on Windows
* WebCoreSupport/WebChromeClient.cpp:
(WebChromeClient::focus): Call updateActiveState directly.
Normally this would happen on a timer, but JS might need to know this earlier, so we'll update here.
(WebChromeClient::unfocus): ditto.
* WebView.cpp: (WebView::updateActiveStateSoon): Added comment about why we use a timer for this.
WebKitTools:
2008-05-21 Adele Peterson <adele@apple.com>
Reviewed by Adam.
DumpRenderTree support for <rdar://problem/5787733> fast/dom/HTMLDocument/hasFocus.html fails on Windows
* DumpRenderTree/win/UIDelegate.cpp:
(UIDelegate::webViewFocus): Added.
(UIDelegate::webViewUnfocus): Added.
* DumpRenderTree/win/UIDelegate.h:
LayoutTests:
2008-05-21 Adele Peterson <adele@apple.com>
Reviewed by Adam.
Enhanced and enabled test for <rdar://problem/5787733> fast/dom/HTMLDocument/hasFocus.html fails on Windows
* fast/dom/HTMLDocument/hasFocus-expected.txt:
* fast/dom/HTMLDocument/hasFocus.html:
* platform/win/Skipped:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@34006
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kmccullough@apple.com [Thu, 22 May 2008 04:56:22 +0000 (04:56 +0000)]
2008-05-21 Kevin McCullough <kmccullough@apple.com>
Reviewed by Adam.
<rdar://problem/5950867> JSProfiler: Allow the profiler to "Focus" a
profile node.
- Expose the Profile's 'focus' ability to WebCore and the WebInspector.
* page/JavaScriptProfile.cpp:
(WebCore::focus):
(WebCore::profileClass):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@34005
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kmccullough@apple.com [Thu, 22 May 2008 04:52:43 +0000 (04:52 +0000)]
2008-05-21 Kevin McCullough <kmccullough@apple.com>
Sadness :(
* kjs/config.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@34004
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kmccullough@apple.com [Thu, 22 May 2008 04:51:03 +0000 (04:51 +0000)]
2008-05-21 Kevin McCullough <kmccullough@apple.com>
Reviewed by Maciej.
<rdar://problem/5950867> JSProfiler: Allow the profiler to "Focus" a
profile node.
- This patch updatest the times of the visible nodes correctly, but to do
so, some of the design of the ProfileNode changed.
* JavaScriptCore.exp: export focus' symbol.
* profiler/Profile.cpp: ProfileNodes now take a reference to the head of
the profile tree to get up-to-date accurate total profile time.
(KJS::Profile::Profile): Pass 0 for the head node.
(KJS::Profile::stopProfiling): stopProfiling no longer needs the time
passed into it, since it can get it from the head and it does not need to
be told it is the head because it can figure it out on it's own.
(KJS::Profile::willExecute): Set the head node for each created node.
* profiler/Profile.h:
(KJS::Profile::focus): Instead of taking a CallIdentifier that the caller
would have to create, now focus() takes a ProfileNode that they should
already have a reference to and focus() can extract the CallIdentifier
from it.
* profiler/ProfileNode.cpp: Create actual and visible versions fo the
total and self times for focus and exclude. Also add a head node
reference so that nodes can get information from their head.
(KJS::ProfileNode::ProfileNode):
(KJS::ProfileNode::stopProfiling): Rename the total and self time
variables and set the visual ones to the actual ones, so that without any
changes to the visual versions of these variables, their times will match
the actual times.
(KJS::ProfileNode::focus): Now focus() has a bool to force it's children
to be visible if this node is visible. If this node does not match the
CallIdentifier being focused then the visibleTotalTime is only updated if
one or more of it's children is the CallIdentifier being focused.
(KJS::ProfileNode::restoreAll): Restores all variables with respect to
the visible data in the ProfileNode.
(KJS::ProfileNode::endAndRecordCall): Name change.
(KJS::ProfileNode::debugPrintData): Dump the new variables.
(KJS::ProfileNode::debugPrintDataSampleStyle): Name change.
* profiler/ProfileNode.h: Use the new variables and reference to the head
node.
(KJS::ProfileNode::create):
(KJS::ProfileNode::totalTime):
(KJS::ProfileNode::setTotalTime):
(KJS::ProfileNode::selfTime):
(KJS::ProfileNode::setSelfTime):
(KJS::ProfileNode::totalPercent):
(KJS::ProfileNode::selfPercent):
(KJS::ProfileNode::setVisible):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@34003
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
weinig@apple.com [Thu, 22 May 2008 04:50:47 +0000 (04:50 +0000)]
2008-05-21 Sam Weinig <sam@webkit.org>
Review by Mark Rowe.
Change test so that its result are not different all the time.
* http/tests/xmlhttprequest/access-control-basic-allow-access-control-origin-header-expected.txt: Copied from http/tests/xmlhttprequest/access-control-basic-allow-headers-expected.txt.
* http/tests/xmlhttprequest/access-control-basic-allow-access-control-origin-header.html: Copied from http/tests/xmlhttprequest/access-control-basic-allow-headers.html.
* http/tests/xmlhttprequest/access-control-basic-allow-headers-expected.txt: Removed.
* http/tests/xmlhttprequest/access-control-basic-allow-headers.html: Removed.
* http/tests/xmlhttprequest/resources/access-control-basic-allow-access-control-origin-header.cgi: Copied from http/tests/xmlhttprequest/resources/access-control-basic-allow-headers.cgi.
* http/tests/xmlhttprequest/resources/access-control-basic-allow-headers.cgi: Removed.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@34002
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
beidson@apple.com [Thu, 22 May 2008 04:33:17 +0000 (04:33 +0000)]
2008-05-21 Brady Eidson <beidson@apple.com>
Rubberstamped by Adam
<rdar://problem/5787763> - Hang in Storage tests on windows
Since the hang was originally noticed and investigated, no one has revisited it.
Adam and I just spent some time trying to reproduce and were unable.
Lets give the bots another go, shall we?
* platform/win/Skipped:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@34001
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mrowe@apple.com [Thu, 22 May 2008 04:14:18 +0000 (04:14 +0000)]
Versioning.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33999
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mrowe@apple.com [Thu, 22 May 2008 04:02:31 +0000 (04:02 +0000)]
Set the pass_through flag on Getopt so that extra arguments can be passed through to Safari,
rather than trigger an unknown argument message. This allows run-webkit-tests to display results
once more.
Rubber-stamped by Stephanie Lewis.
* Scripts/run-safari:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33997
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
oliver@apple.com [Thu, 22 May 2008 03:52:16 +0000 (03:52 +0000)]
Yet more windows builds fixes
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33996
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
timothy@apple.com [Thu, 22 May 2008 03:46:31 +0000 (03:46 +0000)]
Remove the rest of the debug code inside DEBUG_DEBUGGER_CALLBACKS
since the parts the remain aren't useful.
* page/JavaScriptDebugServer.cpp:
(WebCore::JavaScriptDebugServer::sourceParsed):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33995
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
alp@webkit.org [Thu, 22 May 2008 03:44:21 +0000 (03:44 +0000)]
2008-05-21 Alp Toker <alp@nuanti.com>
GTK+/UNIX testkjs build fix. Include signal.h.
* kjs/testkjs.cpp:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33994
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
bdakin@apple.com [Thu, 22 May 2008 03:41:03 +0000 (03:41 +0000)]
2008-05-21 Beth Dakin <bdakin@apple.com>
Reviewed by Anders.
Fix for <rdar://problem/5848161> REGRESSION (r31438?): Crash
beneath ResourceHandle::setDefersLoading while running fast/loader/
simultaneous-reloads-assert.html (null CFURLConnection)
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::ResourceHandle::setDefersLoading): Added simple null-
check.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33993
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
oliver@apple.com [Thu, 22 May 2008 03:34:40 +0000 (03:34 +0000)]
Yet more windows build fixes
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33992
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
timothy@apple.com [Thu, 22 May 2008 03:31:50 +0000 (03:31 +0000)]
Adds the Request and Response headers to the Resource view.
<rdar://problem/5940782> REGRESSION: Resource Request and Response
headers aren't shown (18451)
Reviewed by Adam Roben.
* English.lproj/localizedStrings.js: Added new strings.
* css/view-source.css: Add comments to make sure a couple of
style rules stay in sync with inspector.css.
* page/inspector/Resource.js:
(WebInspector.Resource.prototype.set url): Dispatch an event when
this property changes.
(WebInspector.Resource.prototype.set requestHeaders): Ditto.
(WebInspector.Resource.prototype.set responseHeaders): Ditto.
* page/inspector/ResourceView.js:
(WebInspector.ResourceView): Add new elements for the headers
and a headers TreeOutline. Add event listeners for resource
property changes. Calls the three new refresh functions.
(WebInspector.ResourceView.prototype.set headersVisible): Implemented.
Toggles the headers-visible class name.
(WebInspector.ResourceView.prototype._refreshURL): Update the URL
tree element.
(WebInspector.ResourceView.prototype._refreshRequestHeaders): Call _refreshHeaders.
(WebInspector.ResourceView.prototype._refreshResponseHeaders): Ditto.
(WebInspector.ResourceView.prototype._refreshHeaders): Remove the previous
headers fromm the tree element. Loop throuh the headers and create new
tree elements and append them.
* page/inspector/ResourcesPanel.js:
(WebInspector.ResourcesPanel.prototype._updateSidebarWidth): Call resize
on the visible view if it is implemented.
* page/inspector/SourceFrame.js:
(WebInspector.SourceFrame.prototype.get autoSizeToFitContentHeight):
(WebInspector.SourceFrame.prototype.set autoSizeToFitContentHeight):
(WebInspector.SourceFrame.prototype.sizeToFitContentHeight):
(WebInspector.SourceFrame.prototype._loaded):
(WebInspector.SourceFrame.prototype._windowResized):
* page/inspector/SourceView.js:
(WebInspector.SourceView): Move the SourceFrame creation so it is
available when headersVisible is set. Add a gutter element to fill
the vertical space no covered by the SourceFrame now.
(WebInspector.SourceView.prototype.set headersVisible): Set the
SourceFrame.autoSizeToFitContentHeight when this property changes.
(WebInspector.SourceView.prototype.resize): Call SourceFrame.sizeToFitContentHeight
when autoSizeToFitContentHeight is true. This happens when resizing the
Resources sidebar.
* page/inspector/inspector.css: Add a copy of webkit-line-gutter-backdrop
and a comment to keep in sync with view-source.css. Adds other styles
for the headers area of resource-view.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33991
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
weinig@apple.com [Thu, 22 May 2008 03:23:02 +0000 (03:23 +0000)]
WebCore:
2008-05-21 Sam Weinig <sam@webkit.org>
Reviewed by Anders Carlsson.
<rdar://problem/5838772> Support cross-site XMLHttpRequest
- Implement support for cross-site GET requests using the HTTP header
Access-control mechanism.
Tests: http/tests/xmlhttprequest/access-control-basic-allow-headers.html
http/tests/xmlhttprequest/access-control-basic-allow.html
http/tests/xmlhttprequest/access-control-basic-denied.html
http/tests/xmlhttprequest/access-control-basic-exclude.html
* xml/AccessControlList.cpp:
(WebCore::AccessControlList::checkOrigin): Implement the list check algorithm.
* xml/AccessControlList.h:
* xml/AccessItem.cpp:
(WebCore::AccessItem::AccessItem):
(WebCore::AccessItem::matches):
* xml/AccessItem.h:
Temporarily use a SecurityOrigin as the bases of AccessItem matching. Using
the isSameSchemeHostPort test of the SecurityOrigin allows for a legal subset
of the AccessItem match algorithm to be used, until the complete parsing of
the wildcards and optional pieces is complete.
* xml/AccessItemRule.cpp:
(WebCore::matchesAny):
(WebCore::AccessItemRule::allowListMatchesAny):
(WebCore::AccessItemRule::excludeListMatchesAny):
* xml/AccessItemRule.h:
More of the implementation of the list check algorithm. Check if any of the items
in the rule match the control origin.
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::XMLHttpRequest):
(WebCore::XMLHttpRequest::open): Don't throw a SECURITY_ERR for cross-domain requests anymore.
(WebCore::XMLHttpRequest::send): Use different paths for same origin and cross-domain requests.
(WebCore::XMLHttpRequest::crossSiteAccessRequest): Temporarily only support the GET method for
cross-domain requests.
(WebCore::XMLHttpRequest::loadRequestSynchronously):
(WebCore::XMLHttpRequest::processSyncLoadResults):
This can now throw an exception if a cross-domain request is denied by the access control
(WebCore::XMLHttpRequest::didFinishLoading):
Add support for cross-domain GET request. ASSERT temporarily that the method is GET, since we
should have bailed out much earlier for non-GET methods.
(WebCore::XMLHttpRequest::willSendRequest):
(WebCore::XMLHttpRequest::didReceiveResponse):
Do the HTTP header access-control check as soon as the headers arrive.
* xml/XMLHttpRequest.h:
LayoutTests:
2008-05-21 Sam Weinig <sam@webkit.org>
Reviewed by Anders Carlsson.
<rdar://problem/5838772> Support cross-site XMLHttpRequest
- Add tests for basic cross-domain XHR.
* http/tests/xmlhttprequest/access-control-basic-allow-expected.txt: Added.
* http/tests/xmlhttprequest/access-control-basic-allow-headers-expected.txt: Added.
* http/tests/xmlhttprequest/access-control-basic-allow-headers.html: Added.
* http/tests/xmlhttprequest/access-control-basic-allow.html: Added.
* http/tests/xmlhttprequest/access-control-basic-denied-expected.txt: Added.
* http/tests/xmlhttprequest/access-control-basic-denied.html: Added.
* http/tests/xmlhttprequest/access-control-basic-exclude-expected.txt: Added.
* http/tests/xmlhttprequest/access-control-basic-exclude.html: Added.
* http/tests/xmlhttprequest/exceptions-expected.txt:
* http/tests/xmlhttprequest/exceptions.html:
* http/tests/xmlhttprequest/resources/access-control-basic-allow-headers.cgi: Added.
* http/tests/xmlhttprequest/resources/access-control-basic-allow.cgi: Added.
* http/tests/xmlhttprequest/resources/access-control-basic-denied.cgi: Added.
* http/tests/xmlhttprequest/resources/access-control-basic-exclude.cgi: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33990
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
alp@webkit.org [Thu, 22 May 2008 03:20:58 +0000 (03:20 +0000)]
2008-05-21 Alp Toker <alp@nuanti.com>
GTK+ build fix. Add DebuggerCallFrame.cpp and take AllInOneFile.cpp
changes into account.
* GNUmakefile.am:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33989
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
oliver@apple.com [Thu, 22 May 2008 02:51:45 +0000 (02:51 +0000)]
Fix windows build
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33988
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
slewis@apple.com [Thu, 22 May 2008 02:36:39 +0000 (02:36 +0000)]
2008-05-21 Stephanie Lewis <slewis@apple.com>
Reviewed by Maciej.
arch doesn't take arguments on tiger. expand DRT timeout for guardMalloc.
* Scripts/run-webkit-tests:
* Scripts/webkitdirs.pm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33987
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mrowe@apple.com [Thu, 22 May 2008 02:19:19 +0000 (02:19 +0000)]
Improve the behavior of run-webkit-tests with 64-bit WebKit by automatically inferring whether to run 64-bit.
If --64-bit is not passed to run-webkit-tests, attempt to guess whether we should run 64-bit.
This decision is made based on the 64-bitness of the built WebKit framework if it exists, and
can be manually overridden by passing --64-bit or --no-64-bit. This removes the need to always
pass an argument to run-webkit-tests after having built with "make x86_64".
Reviewed by Stephanie Lewis.
* Scripts/gdb-safari:
* Scripts/run-safari:
* Scripts/run-webkit-tests:
* Scripts/webkitdirs.pm: Split the setting of the 64-bit flag, the determination of the
preferred architecture, and exporting of the environment variables for 'arch' out into
separate subroutines.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33986
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mrowe@apple.com [Thu, 22 May 2008 02:19:17 +0000 (02:19 +0000)]
Fix "make x86_64" by adding x86_64 target to WebKitTools Makefile.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33985
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
alp@webkit.org [Thu, 22 May 2008 02:06:46 +0000 (02:06 +0000)]
2008-05-21 Alp Toker <alp@nuanti.com>
GTK+ port build fixes following squirrelfish merge r33979.
* GNUmakefile.am:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33984
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mjs@apple.com [Thu, 22 May 2008 02:03:39 +0000 (02:03 +0000)]
2008-05-21 Maciej Stachowiak <mjs@apple.com>
Reviewed by Darin.
- save a hash lookup wne writing to global properties
0.3% speedup on SunSpider, 7% on bitops-bitwise-and
* VM/Machine.cpp:
(KJS::resolveBase): Check for being a the end of the scope chain
before hash lookup.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33983
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
alp@webkit.org [Thu, 22 May 2008 01:31:29 +0000 (01:31 +0000)]
2008-05-21 Alp Toker <alp@nuanti.com>
Rubber-stamped by Maciej.
Replace non-standard #pragma marks with comments to avoid compiler
warnings.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33982
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mrowe@apple.com [Thu, 22 May 2008 01:21:18 +0000 (01:21 +0000)]
2008-05-21 Geoffrey Garen <ggaren@apple.com>
Reviewed by Mark Rowe.
Fix layout test failure in fast/dom/getter-on-window-object2 introduced in r33961.
* JavaScriptCore.exp:
* kjs/JSGlobalObject.cpp:
(KJS::JSGlobalObject::defineGetter):
(KJS::JSGlobalObject::defineSetter):
* kjs/JSGlobalObject.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33980
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mrowe@apple.com [Thu, 22 May 2008 01:20:45 +0000 (01:20 +0000)]
Merge squirrelfish branch into trunk.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33979
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
andersca@apple.com [Wed, 21 May 2008 23:18:09 +0000 (23:18 +0000)]
2008-05-21 Anders Carlsson <andersca@apple.com>
Reviewed by Mitz.
Add IconFetcher implementation.
* WebCore.base.exp:
* WebCore.xcodeproj/project.pbxproj:
* html/HTMLLinkElement.h:
(WebCore::HTMLLinkElement::isIcon):
* loader/icon/IconFetcher.cpp: Added.
(WebCore::IconLinkEntry::):
(WebCore::IconLinkEntry::IconLinkEntry):
(WebCore::IconLinkEntry::type):
(WebCore::IconLinkEntry::url):
(WebCore::IconLinkEntry::buffer):
(WebCore::parseIconLink):
(WebCore::IconFetcher::create):
(WebCore::IconFetcher::IconFetcher):
(WebCore::IconFetcher::~IconFetcher):
(WebCore::IconFetcher::cancel):
(WebCore::IconFetcher::createIcon):
(WebCore::IconFetcher::loadEntry):
(WebCore::IconFetcher::loadFailed):
(WebCore::IconFetcher::didReceiveResponse):
(WebCore::IconFetcher::didReceiveData):
(WebCore::IconFetcher::didFinishLoading):
(WebCore::IconFetcher::didFail):
* loader/icon/IconFetcher.h: Added.
(WebCore::IconFetcherClient::~IconFetcherClient):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33978
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mitz@apple.com [Wed, 21 May 2008 21:50:52 +0000 (21:50 +0000)]
Reviewed by Dave Hyatt.
- fix https://bugs.webkit.org/show_bug.cgi?id=18352
<rdar://problem/5854517> crash loading malicious font
* platform/graphics/mac/SimpleFontDataMac.mm:
(WebCore::SimpleFontData::platformInit): In the case of a custom font,
there is no NSFont to base the fallback font on, so get a font based on
fallback family name alone.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33977
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
timothy@apple.com [Wed, 21 May 2008 21:09:59 +0000 (21:09 +0000)]
Adds the files and line numbers to the Profile call tree.
<rdar://problem/5952924> Inspector needs to show file and line number
in the Profile call tree
Reviewed by Geoff Garen.
* page/JavaScriptProfileNode.cpp:
(WebCore::getFunctionName): Fixes a JSStringRef leak.
(WebCore::getURL): Call ProfileNode::url.
(WebCore::getLineNumber): Call ProfileNode::lineNumber.
(WebCore::ProfileNodeClass): Add the url and lineNumber properties.
* page/inspector/ProfileView.js:
(WebInspector.ProfileDataGridNode.prototype.createCell): Overload the
DataGridNode.createCell and add the file and lineNumber to the
cell if the column is the function column.
* page/inspector/inspector.css: New styles for the file and line.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33976
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Wed, 21 May 2008 19:25:03 +0000 (19:25 +0000)]
2008-05-21 Darin Adler <darin@apple.com>
* Scripts/make-js-test-wrappers: Added another exception.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33974
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Wed, 21 May 2008 19:16:47 +0000 (19:16 +0000)]
2008-05-21 Darin Adler <darin@apple.com>
- try to fix the Windows build
* profiler/Profiler.cpp:
(KJS::Profiler::stopProfiling): Use ptrdiff_t instead of the less-common but incredibly
similar ssize_t type.
* wtf/AVLTree.h:
(KJS::AVLTree::search): Added a typename for a dependent name that's a type.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33973
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Wed, 21 May 2008 19:15:01 +0000 (19:15 +0000)]
JavaScriptCore:
2008-05-21 Darin Adler <darin@apple.com>
Reviewed by Anders.
- fix <rdar://problem/5952721> bug in JavaScript arguments object property lookup
Test: fast/js/arguments-bad-index.html
* kjs/function.cpp:
(KJS::IndexToNameMap::IndexToNameMap): Use unsigned instead of int.
(KJS::IndexToNameMap::isMapped): Use unsigned instead of int, and also use the
strict version of the numeric conversion function, since we don't want to allow
trailing junk.
(KJS::IndexToNameMap::unMap): Ditto.
(KJS::IndexToNameMap::operator[]): Ditto.
* kjs/function.h: Changed IndexToNameMap::size type from int to unsigned.
LayoutTests:
2008-05-21 Darin Adler <darin@apple.com>
Reviewed by Anders.
- test for <rdar://problem/5952721> bug in JavaScript arguments object property lookup
* fast/js/arguments-bad-index-expected.txt: Added.
* fast/js/arguments-bad-index.html: Added.
* fast/js/resources/arguments-bad-index.js: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33972
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Wed, 21 May 2008 18:34:47 +0000 (18:34 +0000)]
2008-05-21 Darin Adler <darin@apple.com>
- fix build
* WebView/WebViewPrivate.h: Remove declaration of closeWithFastTeardown. We can add it back later
if we want, but if we do, we should probably make some refinements like checking _private->closed
and applicationIsTerminating.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33971
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
timothy@apple.com [Wed, 21 May 2008 18:16:46 +0000 (18:16 +0000)]
Restores logging of console calls to the STDOUT
when Interpreter::shouldPrintExceptions() is true.
<rdar://problem/5636442> REGRESSION: Console.log no longer logs to
the system console or terminal
<rdar://problem/5146079> JavaScript exception logging should print
accurate file and line info when called from WebScriptObject
Reviewed by Adam Roben.
* bindings/js/JSCustomSQLStatementCallback.cpp:
(WebCore::JSCustomSQLStatementCallback::handleEvent): Remove existing
printf and check for Interpreter::shouldPrintExceptions() since there is
a call to Console::addMessage.
* bindings/js/JSCustomSQLStatementErrorCallback.cpp:
(WebCore::JSCustomSQLStatementErrorCallback::handleEvent): Ditto.
* bindings/js/JSCustomSQLTransactionCallback.cpp:
(WebCore::JSCustomSQLTransactionCallback::handleEvent): Ditto.
* bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
(WebCore::JSCustomSQLTransactionErrorCallback::handleEvent): Ditto.
* bindings/js/JSCustomVoidCallback.cpp:
(WebCore::JSCustomVoidCallback::handleEvent): Ditto.
* bindings/js/JSCustomXPathNSResolver.cpp:
(WebCore::JSCustomXPathNSResolver::lookupNamespaceURI): Ditto.
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::printErrorMessage): Ditto.
* bindings/js/ScheduledAction.cpp:
(WebCore::ScheduledAction::execute): Ditto.
* bindings/js/kjs_events.cpp:
(WebCore::JSAbstractEventListener::handleEvent): Ditto.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::shouldAllowNavigation): Ditto.
* bindings/objc/WebScriptObject.mm:
(WebCore::addExceptionToConsole): Added helper static function that
calls Console::addMessage.
(-[WebScriptObject callWebScriptMethod:withArguments:]): Call addExceptionToConsole.
(-[WebScriptObject evaluateWebScript:]): Ditto.
(-[WebScriptObject setValue:forKey:]): Ditto.
(-[WebScriptObject valueForKey:]): Ditto.
(-[WebScriptObject removeWebScriptKey:]): Ditto.
(-[WebScriptObject webScriptValueAtIndex:]): Ditto.
(-[WebScriptObject setWebScriptValueAtIndex:value:]): Ditto.
* page/Console.cpp:
(WebCore::Console::addMessage): Print the level, message,
URL and line number to STDOUT.
(WebCore::printToStandardOut): Helper static function that
takes a prefix string, ExecState, an argument List and URL.
Prints the prefix and loops through the arguments calling
toString on each and printing the string. Finally printing
the URL and new line.
(WebCore::Console::error): Call printToStandardOut.
(WebCore::Console::info): Ditto.
(WebCore::Console::log): Ditto.
(WebCore::Console::assertCondition): Ditto.
(WebCore::Console::warn): Ditto.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33970
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
timothy@apple.com [Wed, 21 May 2008 18:16:18 +0000 (18:16 +0000)]
Changes to the ownership of Profiles and allows multiple Profiles at a time
JavaScriptCore:
Change the Profiler to allow multiple profiles to be running at
the same time. This can happen when you have nested console.profile()
calls. This required two changes. First, the Profiler needed to keep a
Vector of current profiles, instead of one. Second, a Profile needs
to keep track of the global ExecState it started in and the page group
identifier it is tracking.
The stopProfiling call now takes the same arguments as startProfiling.
This makes sure the correct profile is stopped. Passing a null UString
as the title will stop the last profile for the matching ExecState.
<rdar://problem/5951559> Multiple pages profiling can interfere with each other
Reviewed by Kevin McCullough.
* JavaScriptCore.exp: Added new exports. Removed old symbols.
* profiler/Profile.cpp:
(KJS::Profile::Profile): New constructor arguments for the
originatingGlobalExec and pageGroupIdentifier.
(KJS::Profile::stopProfiling): Set the m_originatingGlobalExec to null.
* profiler/Profile.h:
(KJS::Profile::create): Additional arguments.
(KJS::Profile::originatingGlobalExec): Return m_originatingGlobalExec.
(KJS::Profile::pageGroupIdentifier): Return m_pageGroupIdentifier.
* profiler/Profiler.cpp:
(KJS::Profiler::findProfile): Added. Finds a Profile that matches
the ExecState and title.
(KJS::Profiler::startProfiling): Return early if there is already
a Profile with the ExecState and title. If not, create a new profile
and append it to m_currentProfiles.
(KJS::Profiler::stopProfiling): Loops through m_currentProfiles
and find the one matching the ExecState and title. If one is found
call stopProfiling and return the Profile after removing it
from m_currentProfiles.
(KJS::dispatchFunctionToProfiles): Helper inline function to loop through
m_currentProfiles and call a Profile function.
(KJS::Profiler::willExecute): Call dispatchFunctionToProfiles.
(KJS::Profiler::didExecute): Ditto.
* profiler/Profiler.h:
WebCore:
Changes to work with the new Profiler API. The Profile is now
stored by the InspectorController when Console.profileEnd is called.
This solves three issues with the previous design. First, we don't
keep profiles around unless the Inspector is enabled. Second, we
only show Profiles initiated by the Page in it's Inspector, not every
Profile for the whole process. Third, we now show Profiles in the
Inspector when they are created.
<rdar://problem/5951562> New profiles aren't added to the Inspector
as they finish
Reviewed by Kevin McCullough.
* bindings/js/JSConsoleCustom.cpp:
(WebCore::JSConsole::profileEnd): Added. Calls impl()->profileEnd()
and passes the ExecState and arguments.
* page/Console.cpp:
(WebCore::Console::profile):
(WebCore::Console::profileEnd): Accept the optional title argument
and pass it to Profilier::stopProfiling along with the ExecState.
Calls InspectorController::addProfile with the result Profile.
* page/Console.h:
* page/Console.idl: Made profileEnd Custom so we can get the ExecState.
* page/InspectorController.cpp:
(WebCore::profiles): Renamed from allProfiles. Uses the controller's
profiles vector.
(WebCore::InspectorController::addProfile): Appends to m_profiles.
Calls addScriptProfile if the window is visible.
(WebCore::InspectorController::windowScriptObjectAvailable): Renamed
allProfiles to profiles.
(WebCore::InspectorController::addScriptProfile): Calls addProfile on
the JavaScript side.
(WebCore::InspectorController::didCommitLoad): Clears m_profiles.
* page/InspectorController.h:
* page/inspector/ProfilesPanel.js: Populates the profiles sidebar the first
time the panel is shown after a rest.
* page/inspector/inspector.js: Added addProfile, calls ProfilesPanel's
addProfile function.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33969
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Wed, 21 May 2008 17:53:45 +0000 (17:53 +0000)]
2008-05-21 Darin Adler <darin@apple.com>
Reviewed by Anders and Kevin Decker.
- fix <rdar://problem/5951130> REGRESSION: crash on quit after reopening windows from previous session
* WebView/WebView.mm:
(-[WebViewPrivate dealloc]): Fix assertions to not complain when fast teardown is used.
(-[WebView _closePluginDatabases]): Factored out some common code from both versions of close.
(-[WebView _closeWithFastTeardown]): Added an underscore to this method's name, since it's internal.
Streamlined the code a bit. Added a line of code to set _private->closed (this is the bug fix).
(-[WebView _close]): Changed for new method name and to use _closePluginDatabases.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33968
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ap@webkit.org [Wed, 21 May 2008 17:17:37 +0000 (17:17 +0000)]
Reviewed by Darin.
<rdar://problem/5908520> REGRESSION (3.1.1-r33033): Crash in WebKit when opening or
refreshing page on people.com
The problem was that STL algorithms do not work with non-conformant comparators, and the
site used sort(function() { return 0.5 - Math.random(); } to randomly shuffle an array.
https://bugs.webkit.org/show_bug.cgi?id=18687
REGRESSION(r32220): ecma/Array/15.4.4.5-3.js test now fails in GMT(BST)
Besides relying on sort stability, this test was just broken, and kept failing with the
new stable sort.
Tests: fast/js/sort-randomly.html
fast/js/sort-stability.html
fast/js/comparefn-sort-stability.html
* kjs/avl_tree.h: Added an AVL tree implementation.
* JavaScriptCore.xcodeproj/project.pbxproj:
* wtf/AVLTree.h: Added.
Added an AVL tree implementation.
* kjs/array_instance.cpp:
(KJS::ArrayInstance::increaseVectorLength):
(KJS::ArrayInstance::sort):
(KJS::AVLTreeAbstractorForArrayCompare::get_less):
(KJS::AVLTreeAbstractorForArrayCompare::set_less):
(KJS::AVLTreeAbstractorForArrayCompare::get_greater):
(KJS::AVLTreeAbstractorForArrayCompare::set_greater):
(KJS::AVLTreeAbstractorForArrayCompare::get_balance_factor):
(KJS::AVLTreeAbstractorForArrayCompare::set_balance_factor):
(KJS::AVLTreeAbstractorForArrayCompare::compare_key_key):
(KJS::AVLTreeAbstractorForArrayCompare::compare_key_node):
(KJS::AVLTreeAbstractorForArrayCompare::compare_node_node):
(KJS::AVLTreeAbstractorForArrayCompare::null):
(KJS::ArrayInstance::compactForSorting):
* kjs/array_instance.h: increaseVectorLength() now returns a bool to indicate whether it was
successful.
* wtf/Vector.h:
(WTF::Vector::Vector):
(WTF::::operator=):
(WTF::::fill):
Make these methods fail instead instead of crash when allocation fails, matching resize() and
reserveCapacity(), which already had this behavior. Callers need to check for null buffer
after making any Vector call that can try to allocate.
* tests/mozilla/ecma/Array/15.4.4.5-3.js: Fixed the test to use a consistent sort function,
as suggested in comments to a Mozilla bug filed about it (I'll keep tracking the bug to see
what the final resolution is).
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33967
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ap@webkit.org [Wed, 21 May 2008 17:00:20 +0000 (17:00 +0000)]
Reviewed by Darin.
https://bugs.webkit.org/show_bug.cgi?id=19169
<rdar://5952342> REGRESSION: nakarte.ru searches don't work
Test: http/tests/xmlhttprequest/encode-request-url.html
* platform/KURL.cpp: (WebCore::KURL::init): Don't allow UTF-8 encoded data to be implicitly
converted to String, as it will be encoded again by parse().
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33966
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kmccullough@apple.com [Wed, 21 May 2008 16:59:35 +0000 (16:59 +0000)]
2008-05-20 Kevin McCullough <kmccullough@apple.com>
Reviewed by Tim.
<rdar://problem/5950867> JSProfiler: Allow the profiler to "Focus" a
profile node.
- Implements focus by adding the idea of a profileNode being visible and
adding the ability to reset all of the visible flags.
* profiler/Profile.h:
(KJS::Profile::focus):
* profiler/ProfileNode.cpp:
(KJS::ProfileNode::ProfileNode): Initialize the visible flag.
(KJS::ProfileNode::setTreeVisible): Set the visibility of this node and
all of its descendents.
(KJS::ProfileNode::focus): Determine if this node should be visible when
focusing, if the functionName matches this node's function name or if any
of this node's children are visible.
(KJS::ProfileNode::restoreAll): Restore all nodes' visible flag.
(KJS::ProfileNode::debugPrintData):
* profiler/ProfileNode.h:
(KJS::ProfileNode::visible):
(KJS::ProfileNode::setVisible):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33965
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
hausmann@webkit.org [Wed, 21 May 2008 14:38:56 +0000 (14:38 +0000)]
2008-05-21 Ariya Hidayat <ariya.hidayat@trolltech.com>
Reviewed by Simon.
For the Qt port, fix building with Qt for Embedded Linux.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33964
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
hausmann@webkit.org [Wed, 21 May 2008 14:35:00 +0000 (14:35 +0000)]
2008-05-21 Ariya Hidayat <ariya.hidayat@trolltech.com>
Reviewed by Simon.
For the Qt port, allow building without NPAPI plugin support.
* WebCore.pro:
* plugins/PluginView.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33963
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kevino@webkit.org [Wed, 21 May 2008 05:47:44 +0000 (05:47 +0000)]
Reviewed by Darin Adler.
Rename wxWebFrame -> wxWebBrowserShell in preparation to introduce a WebFrame counterpart in wx port. (Frame typically means 'top level window' in wx terms.)
https://bugs.webkit.org/show_bug.cgi?id=19041
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33957
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kmccullough@apple.com [Wed, 21 May 2008 04:14:11 +0000 (04:14 +0000)]
2008-05-20 Kevin McCullough <kmccullough@apple.com>
Reviewed by Tim.
Added all of my personal manual tests for the profiler.
* manual-tests/inspector/profiler-test-anonymous-event-handler.html: Added.
* manual-tests/inspector/profiler-test-anonymous-function-called-from-different-contexts.html: Added.
* manual-tests/inspector/profiler-test-anonymous-function-calls-built-in-functions.html: Added.
* manual-tests/inspector/profiler-test-anonymous-function-calls-eval.html: Added.
* manual-tests/inspector/profiler-test-apply.html: Added.
* manual-tests/inspector/profiler-test-built-in-function-calls-anonymous.html: Added.
* manual-tests/inspector/profiler-test-built-in-function-calls-user-defined-function.html: Added.
* manual-tests/inspector/profiler-test-call.html: Added.
* manual-tests/inspector/profiler-test-dead-time.html: Added.
* manual-tests/inspector/profiler-test-event-handler.html: Added.
* manual-tests/inspector/profiler-test-execution-context-and-eval-on-same-line.html: Added.
* manual-tests/inspector/profiler-test-inline-event-handler.html: Added.
* manual-tests/inspector/profiler-test-many-calls-in-the-same-scope.html: Added.
* manual-tests/inspector/profiler-test-multiple-and-different-scoped-anonymous-function-calls.html: Added.
* manual-tests/inspector/profiler-test-multiple-and-different-scoped-function-calls.html: Added.
* manual-tests/inspector/profiler-test-multiple-frames.html: Added.
* manual-tests/inspector/profiler-test-multiple-windows.html: Added.
* manual-tests/inspector/profiler-test-nested-anonymous-functon.html: Added.
* manual-tests/inspector/profiler-test-nested-start-and-stop-profiler.html: Added.
* manual-tests/inspector/profiler-test-no-execution-context.html: Added.
* manual-tests/inspector/profiler-test-one-execution-context.html: Added.
* manual-tests/inspector/profiler-test-profile-calls-in-included-file.html: Added.
* manual-tests/inspector/profiler-test-profiling-from-a-nested-location-but-stop-profiling-outside-the-nesting.html: Added.
* manual-tests/inspector/profiler-test-profiling-from-a-nested-location.html: Added.
* manual-tests/inspector/profiler-test-start-and-stop-profiler-multiple-times.html: Added.
* manual-tests/inspector/profiler-test-two-execution-contexts.html: Added.
* manual-tests/inspector/profiler-test-user-defined-function-calls-built-in-functions.html: Added.
* manual-tests/inspector/resources: Added.
* manual-tests/inspector/resources/other-frame.html: Added.
* manual-tests/inspector/resources/other-window.html: Added.
* manual-tests/inspector/resources/profiler-test-JS-resources.js: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33955
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
timothy@apple.com [Wed, 21 May 2008 01:48:31 +0000 (01:48 +0000)]
Fixes a couple performance issues with the profiler. Also fixes
a regression where some nodes wouldn't be added to the tree.
Reviewed by Kevin McCullough.
* profiler/ProfileNode.cpp:
(KJS::ProfileNode::addChild): Compare callIdentifier instead
of functionName.
* profiler/ProfileNode.h:
(CallIdentifier.operator==): Compare the CallIdentifiers in
an order that fails sooner for non-matches.
(CallIdentifier.callIdentifier): Return the CallIdentifier by
reference to prevent making a new copy each time.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33952
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
alp@webkit.org [Wed, 21 May 2008 00:51:24 +0000 (00:51 +0000)]
2008-05-20 Jan Michael Alonzo <jmalonzo@webkit.org>
Reviewed by Alp Toker.
Fix for previous autotools change.
* configure.ac:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33951
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
aroben@apple.com [Wed, 21 May 2008 00:23:58 +0000 (00:23 +0000)]
Use KJS::List::getSlice instead of reimplementing it
Rubberstamped and suggested by Sam Weinig.
* bindings/js/JSConsoleCustom.cpp:
(WebCore::JSConsole::assertCondition):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33949
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
adele@apple.com [Tue, 20 May 2008 23:38:44 +0000 (23:38 +0000)]
2008-05-20 Kevin Calhoun <kcalhoun@apple.com>
Reviewed by Darin.
Fix <rdar://problem/5929010> Adopt new QTKit methods for <video> implementation
If the class QTVideoRendererWebKitOnly is present use it to render video,
otherwise fall back to existing use of QTMovieView/QTMovieContentView.
* platform/graphics/mac/MediaPlayerPrivateQTKit.h:
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
(WebCore::MediaPlayerPrivate::createQTMovie):
(WebCore::QTVideoRendererClass):
(WebCore::MediaPlayerPrivate::detachQTMovieView):
(WebCore::MediaPlayerPrivate::createQTVideoRenderer):
(WebCore::MediaPlayerPrivate::destroyQTVideoRenderer):
(WebCore::MediaPlayerPrivate::setUpVideoRendering):
(WebCore::MediaPlayerPrivate::tearDownVideoRendering):
(WebCore::MediaPlayerPrivate::load):
(WebCore::MediaPlayerPrivate::cancelLoad):
(WebCore::MediaPlayerPrivate::setVisible):
(WebCore::MediaPlayerPrivate::paint):
(-[WebCoreMovieObserver newImageAvailable:]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33948
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kmccullough@apple.com [Tue, 20 May 2008 23:32:49 +0000 (23:32 +0000)]
2008-05-20 Kevin McCullough <kmccullough@apple.com>
Reviewed by Darin.
<rdar://problem/5950796> JSProfiler: dump functions are in the code
Removed dump and logging functions from the Release version of the code
and renamed them to be obviously for debugging only.
* JavaScriptCore.exp:
* profiler/Profile.cpp:
(KJS::Profile::debugPrintData):
(KJS::Profile::debugPrintDataSampleStyle):
* profiler/Profile.h:
* profiler/ProfileNode.cpp:
(KJS::ProfileNode::debugPrintData):
(KJS::ProfileNode::debugPrintDataSampleStyle):
* profiler/ProfileNode.h:
* profiler/Profiler.cpp:
* profiler/Profiler.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33947
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
aroben@apple.com [Tue, 20 May 2008 23:05:51 +0000 (23:05 +0000)]
Fix Bug 19134: Inspector should support console.assert
<https://bugs.webkit.org/show_bug.cgi?id=19134>
Reviewed by Tim Hatcher.
Test: manual-tests/inspector/console-assert.html
* bindings/js/JSConsoleCustom.cpp:
(WebCore::JSConsole::assertCondition): Added.
* bindings/scripts/CodeGeneratorJS.pm: Added parsing of the
ImplementationFunction extended attribute, which allows you to
override the name of the C++ function used to implement this method.
* manual-tests/inspector/console-assert.html: Added.
* page/Console.cpp:
(WebCore::Console::assertCondition): Added.
* page/Console.h:
* page/Console.idl: Added assert().
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33946
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kmccullough@apple.com [Tue, 20 May 2008 23:05:21 +0000 (23:05 +0000)]
2008-05-20 Kevin McCullough <kmccullough@apple.com>
Reviewed by Adam.
<rdar://problem/5950538> JSProfiler: Keep track of non-JS execution time
We now have an extra node that represents the excess non-JS time.
- Also changed "SCRIPT" and "anonymous function" to be more consistent
with the debugger.
* profiler/ProfileNode.cpp:
(KJS::ProfileNode::stopProfiling): If this ProfileNode is the head node
create a new child that has the excess execution time.
(KJS::ProfileNode::calculatePercentages): Moved calculation of the
percentages into a function since it's called from multiple places.
* profiler/ProfileNode.h: Add the newly needed functions used above.
(KJS::ProfileNode::setTotalTime):
(KJS::ProfileNode::setSelfTime):
(KJS::ProfileNode::setNumberOfCalls):
* profiler/Profiler.cpp: renamed "SCRIPT" and "anonymous function" to be
consistent with the debugger and use constants that can be localized
more easily.
(KJS::getCallIdentifiers):
(KJS::getCallIdentifierFromFunctionImp):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33945
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kmccullough@apple.com [Tue, 20 May 2008 21:29:08 +0000 (21:29 +0000)]
2008-05-20 Kevin McCullough <kmccullough@apple.com>
Reviewed by Tim.
<rdar://problem/5770054> JavaScript profiler (10928)
Removed only profiler-internal use of currentProfile since that concept
is changing.
* profiler/Profile.h: Now stopProfiling takes a time and bool as
arguments. The time is used to calculate %s from and the bool tells
if this node is the head node and should be the one calculating the time.
(KJS::Profile::stopProfiling):
* profiler/ProfileNode.cpp: Ditto.
(KJS::ProfileNode::stopProfiling):
* profiler/ProfileNode.h: Ditto.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33943
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kmccullough@apple.com [Tue, 20 May 2008 21:02:41 +0000 (21:02 +0000)]
2008-05-20 Kevin McCullough <kmccullough@apple.com>
Accidentally turned on the profiler.
* kjs/config.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33942
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kmccullough@apple.com [Tue, 20 May 2008 20:59:16 +0000 (20:59 +0000)]
2008-05-20 Kevin McCullough <kmccullough@apple.com>
Reviewed by Tim.
<rdar://problem/5770054> JavaScript profiler (10928)
Split function name into 3 parts so that the Web Inspector can link it to
the resource location from whence it came.
* kjs/ustring.cpp: Implemented operator> for UStrings
(KJS::operator>):
* kjs/ustring.h:
* profiler/Profile.cpp:
(KJS::Profile::Profile): Initialize all 3 values.
(KJS::Profile::willExecute): Use CallIdentifier struct.
(KJS::Profile::didExecute): Ditto.
* profiler/Profile.h: Ditto and remove unused function.
* profiler/ProfileNode.cpp:
(KJS::ProfileNode::ProfileNode): Use CallIdentifier struct.
(KJS::ProfileNode::willExecute): Ditto and fix an issue where we
restarted the m_startTime even though it was already started.
(KJS::ProfileNode::didExecute): Ditto.
(KJS::ProfileNode::findChild): Ditto.
(KJS::functionNameDescendingComparator): Ditto and use new comparator.
(KJS::functionNameAscendingComparator): Ditto.
(KJS::ProfileNode::printDataInspectorStyle): Use CallIdentifier struct.
(KJS::ProfileNode::printDataSampleStyle): Ditto.
* profiler/ProfileNode.h:
(KJS::CallIdentifier::CallIdentifier): Describe the CallIdentifier struct
(KJS::CallIdentifier::operator== ):
(KJS::ProfileNode::create): Use the CallIdentifier struct.
(KJS::ProfileNode::callIdentifier):
(KJS::ProfileNode::functionName): Now only return the function name, not
the url and line number too.
(KJS::ProfileNode::url):
(KJS::ProfileNode::lineNumber):
* profiler/Profiler.cpp: Use the CallIdentifier struct.
(KJS::Profiler::startProfiling):
(KJS::Profiler::willExecute):
(KJS::Profiler::didExecute):
(KJS::getCallIdentifiers):
(KJS::getCallIdentifierFromFunctionImp):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33941
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
alice.liu@apple.com [Tue, 20 May 2008 20:51:21 +0000 (20:51 +0000)]
2008-05-20 Alice Liu <alice.liu@apple.com>
Reviewed by Brady.
fix <rdar://problem/5908580> 10A58: Dictionary Panel hangs in WebCore::Cache::pruneDeadResources()
* loader/Cache.cpp:
(WebCore::Cache::requestUserCSSStyleSheet):
Add a call to resourceAccessed() to more closely mirror what is done in requestResource()
(WebCore::Cache::insertInLRUList):
Assert that any resource in the LRU list has been accessed. This is early detection of a
potential hang later when pruning resources, and also agrees with the early return in
removeFromLRUList().
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33940
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mitz@apple.com [Tue, 20 May 2008 19:15:09 +0000 (19:15 +0000)]
WebCore:
Reviewed by Darin Adler.
- fix https://bugs.webkit.org/show_bug.cgi?id=17655
<rdar://problem/5778077> REGRESSION (3.1.1-TOT): Reproducible crash calling querySelector on viewless Document
Test: fast/dom/SelectorAPI/viewless-document.html
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::CSSStyleSelector): Updated to initialize the
selector checker.
(WebCore::CSSStyleSelector::init): Removed initialization of
m_collectRulesOnly, which is now part of the selector checker.
(WebCore::CSSStyleSelector::matchRules): Updated for renames and data
moved into the selector checker.
(WebCore::CSSStyleSelector::matchRulesForList): Ditto.
(WebCore::CSSStyleSelector::initForStyleResolve): Added a PseudoId
argument, which is used to initialize a data member of the selector
checker. Updated for renames. Removed initialization of m_isXMLDoc
because this bit is now initialized only once in the selector checker's
constructor.
(WebCore::CSSStyleSelector::SelectorChecker::SelectorChecker): Added.
(WebCore::CSSStyleSelector::SelectorChecker::checkPseudoState): Changed
into a SelectorChecker method.
(WebCore::CSSStyleSelector::SelectorChecker::checkSelector): Added. Used
by querySelector() and querySelectorAll().
(WebCore::CSSStyleSelector::canShareStyleWithElement): Updated for data
moved into the selector checker.
(WebCore::CSSStyleSelector::matchUARules): Ditto.
(WebCore::CSSStyleSelector::styleForElement):
(WebCore::CSSStyleSelector::pseudoStyleForElement): Ditto. Also removed
code that set the parentStyle variable after the last place it is
accessed, and changed to ensure that m_style is set early in this
function.
(WebCore::CSSStyleSelector::adjustRenderStyle): Updated for data moved
into the selector checker.
(WebCore::CSSStyleSelector::styleRulesForElement): Ditto.
(WebCore::CSSStyleSelector::checkSelector): Ditto. Also changed to pass
the element's style and the parent style to the selector checker, as
well as the dynamic pseudo variable and the selector attributes vector.
(WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector): Added
arguments for the style of the base element and its parent. When the
elementStyle argument is 0, the style is fetched from the element
and its parent as needed. Also changed to take a reference to the
dynamic pseudo ID and a pointer to the vector of attributes affecting
the match.
(WebCore::CSSStyleSelector::applyProperty): Updated for data moved
into the selector checker.
(WebCore::CSSStyleSelector::checkForGenericFamilyChange): Ditto.
(WebCore::CSSStyleSelector::getComputedSizeFromSpecifiedSize): Ditto.
(WebCore::CSSStyleSelector::fontSizeForKeyword): Ditto.
(WebCore::CSSStyleSelector::getColorFromPrimitiveValue): Ditto.
(WebCore::CSSStyleSelector::SelectorChecker::allVisitedStateChanged):
Changed into a SelectorChecker method.
(WebCore::CSSStyleSelector::SelectorChecker::visitedStateChanged):
Ditto.
* css/CSSStyleSelector.h:
Added a SelectorChecker class and moved data and methods used in
checking selectors into it.
(WebCore::CSSStyleSelector::allVisitedStateChanged): Changed to call the
SelectorChecker method.
(WebCore::CSSStyleSelector::visitedStateChanged): Ditto.
* dom/Node.cpp:
(WebCore::Node::querySelector): Changed to use a SelectorChecker instead
of the document's style selector.
* dom/SelectorNodeList.cpp:
(WebCore::SelectorNodeList::SelectorNodeList): Ditto.
LayoutTests:
Reviewed by Darin Adler.
- test for https://bugs.webkit.org/show_bug.cgi?id=17655
<rdar://problem/5778077> REGRESSION (3.1.1-TOT): Reproducible crash calling querySelector on viewless Document
* fast/dom/SelectorAPI/resources/viewless-document.js: Added.
* fast/dom/SelectorAPI/viewless-document-expected.txt: Added.
* fast/dom/SelectorAPI/viewless-document.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33939
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
timothy@apple.com [Tue, 20 May 2008 19:04:57 +0000 (19:04 +0000)]
Implements the Profiles panel and Profile view.
Reviewed by Kevin McCullough.
* English.lproj/localizedStrings.js: Added new strings.
* page/inspector/Images/profileIcon.png: Added.
* page/inspector/Images/profilesIcon.png: Changed. New icon design
that fits in with the other toolbar icons.
* page/inspector/ProfileView.js:
(WebInspector.ProfileView): Remove custom table elements
and create a DataGrid. Sorts the profile by descending total time,
since the profiles aren't sorted by default.
(WebInspector.ProfileView.prototype.refresh): Clears the DataGrid
and recreates all the nodes. The selection is preserved.
(WebInspector.ProfileView.prototype.refreshShowAsPercents): Traverse
all the children and change showTotalTimeAsPercent and showSelfTimeAsPercent
to match the ProfileView values. Then call refresh on the child.
(WebInspector.ProfileView.prototype._sortData): Determine the sort
function to call on the head profile node. Call it and then call
refresh to rebuild the DataGrid.
(WebInspector.ProfileView.prototype._mouseDownInDataGrid): Return early
if the event is not a double-click. When it is a double-click, determine
the column that was targeted and if it was total or self toggle the
show as percent property. Call refreshShowAsPercents.
(WebInspector.ProfileDataGridNode):
(WebInspector.ProfileDataGridNode.prototype.get data):
(WebInspector.ProfileDataGridNode.prototype.expand):
(WebInspector.ProfileDataGridNode.prototype.collapse):
(WebInspector.ProfileDataGridNode.prototype._populate):
* page/inspector/ProfilesPanel.js:
(WebInspector.ProfilesPanel):
(WebInspector.ProfilesPanel.prototype.show): Populate the sidebar
with all profiles. This is a workaround until the Inspector
is told about new profiles.
(WebInspector.ProfilesPanel.prototype.reset): Clear the sidebar and
profile views.
(WebInspector.ProfilesPanel.prototype.handleKeyEvent): Pass the key
event to the sidebar.
(WebInspector.ProfilesPanel.prototype.addProfile): Create a
ProfileSidebarTreeElement object and add it to the sidebar.
(WebInspector.ProfilesPanel.prototype.showProfile): Create a ProfileView
and show it.
(WebInspector.ProfilesPanel.prototype.closeVisibleView): Hide the
visible view.
(WebInspector.ProfilesPanel.prototype._startSidebarDragging): Call
WebInspector.elementDragStart.
(WebInspector.ProfilesPanel.prototype._sidebarDragging): Call _updateSidebarWidth.
(WebInspector.ProfilesPanel.prototype._endSidebarDragging):
Call WebInspector.elementDragEnd.
(WebInspector.ProfilesPanel.prototype._updateSidebarWidth): Update the
sidebar width based on the passed in value.
(WebInspector.ProfileSidebarTreeElement): Subclass WebInspector.SidebarTreeElement.
(WebInspector.ProfileSidebarTreeElement.prototype.onselect): Call ProfilesPanel.showProfile.
(WebInspector.ProfileSidebarTreeElement.prototype.get mainTitle): Return profile.title.
(WebInspector.ProfileSidebarTreeElement.prototype.set mainTitle): Do nothing.
(WebInspector.ProfileSidebarTreeElement.prototype.get subtitle): Ditto.
(WebInspector.ProfileSidebarTreeElement.prototype.set subtitle): Ditto.
* page/inspector/inspector.css: New styles for the profile sidebar
item and profile data grid columns.
* page/inspector/inspector.js:
* page/inspector/utilities.js:
(Number.secondsToString): Added a higherResolution argument
that returns fractional milliseconds.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33938
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cfleizach@apple.com [Tue, 20 May 2008 18:39:05 +0000 (18:39 +0000)]
<rdar://problem/5060458> Elements without AXActions should not return kAXErrorFailure
<rdar://problem/3438014> Might need accessibility solution for context menus in web pages
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33937
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
timothy@apple.com [Tue, 20 May 2008 17:12:40 +0000 (17:12 +0000)]
Expose the ProfileNode functionName sorting functions on
JavaScriptProfileNode.
Reviewed by Kevin McCullough.
* page/JavaScriptProfileNode.cpp:
(WebCore::sortFunctionNameDescending): Call ProfileNode.
(WebCore::sortFunctionNameAscending): Ditto.
(WebCore::ProfileNodeClass): Add static functions.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33936
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
timothy@apple.com [Tue, 20 May 2008 17:12:10 +0000 (17:12 +0000)]
Rename sortFileName{Ascending,Descending} to
sortFunctionName{Ascending,Descending}.
Reviewed by Kevin McCullough.
* JavaScriptCore.exp:
* kjs/config.h:
* profiler/Profile.h:
* profiler/ProfileNode.cpp:
(KJS::functionNameDescendingComparator):
(KJS::ProfileNode::sortFunctionNameDescending):
(KJS::functionNameAscendingComparator):
(KJS::ProfileNode::sortFunctionNameAscending):
* profiler/ProfileNode.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33935
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Tue, 20 May 2008 16:41:43 +0000 (16:41 +0000)]
2008-05-20 Darin Adler <darin@apple.com>
Reviewed by Mitz.
- a first small step of CSS DOM refactoring -- the eventual goal is to
reduce StyleBase and possibly eliminate it, since it has multiple
purposes and unneccessarily ties many classes together
* css/CSSCursorImageValue.cpp:
(WebCore::isSVGCursorIdentifier): Mark static so it has internal linkage.
(WebCore::resourceReferencedByCursorElement): Ditto.
(WebCore::CSSCursorImageValue::CSSCursorImageValue): Removed unused style
argument.
(WebCore::CSSCursorImageValue::updateIfSVGCursorIsUsed): Removed code to
check if X and Y changed before changing them -- there's no reason to do
that. Removed code that depended on the internals of CSSImageValue. The
new code uses only protected functions rather than going right at the
fields and uing internal knowledge of the base class.
* css/CSSCursorImageValue.h: Added a create function, made constructor
private, removed unused style argument.
* css/CSSImageValue.cpp:
(WebCore::CSSImageValue::CSSImageValue): Removed unused style argument.
(WebCore::CSSImageValue::cachedImageURL): Added. A protected function for
use by CSSCursorImageValue that gives the URL.
(WebCore::CSSImageValue::clearCachedImage): Added. A protected function for
use by CSSCursorImageValue that clears the CachedImage.
* css/CSSImageValue.h: Added create functions, made constructors protected
and private, removed unused style argument, made data members private, added
some protected functions for use by CSSCursorImageValue.
* css/CSSImportRule.cpp:
(WebCore::CSSImportRule::setCSSStyleSheet): Changed to call checkLoaded on
the parent. This is part of preparation to move the checkLoaded function from
StyleBase to StyleSheet.
(WebCore::CSSImportRule::insertedIntoParent): Changed code to check the URL
of the style sheet to use the href function of the style sheet rather than
the baseURL function. This eliminates an O(n^2) algorithm here and reduces
the use of baseURL, part of preparation to move it from StyleBase
to CSSStyleSheet.
* css/CSSMutableStyleDeclaration.cpp:
(WebCore::CSSMutableStyleDeclaration::setImageProperty): Changed to use create
function instead of a direct call to new for the CSSImageValue classes.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue): Ditto.
(WebCore::CSSParser::parseContent): Ditto.
(WebCore::CSSParser::parseFillImage): Ditto.
(WebCore::CSSParser::parseBorderImage): Ditto.
* css/CSSStyleSelector.cpp: Removed unneeded include of CSSImageValue.h.
* rendering/style/RenderStyle.h: Removed unneeded include of
CSSCursorImageValue.h, which was causing us to rebuild the world way too often.
* xml/XSLImportRule.cpp:
(WebCore::XSLImportRule::setXSLStyleSheet): See change to CSSImportRule above.
(WebCore::XSLImportRule::loadSheet): Ditto.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33934
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kmccullough@apple.com [Tue, 20 May 2008 15:55:23 +0000 (15:55 +0000)]
2008-05-20 Kevin McCullough <kmccullough@apple.com>
Rubber stamped by Adam.
-Minor fix. Should not use a reference since the original may disappear.
* page/Console.cpp:
(WebCore::Console::profile):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33933
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kevino@webkit.org [Tue, 20 May 2008 15:40:56 +0000 (15:40 +0000)]
wx build fixes for PluginViewWx.cpp and WebKit/wx/WebView.cpp
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33932
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
timothy@apple.com [Tue, 20 May 2008 13:58:27 +0000 (13:58 +0000)]
Expose the ProfileNode sorting functions on JavaScriptProfileNode.
Reviewed by Kevin McCullough.
* page/JavaScriptProfileNode.cpp:
(WebCore::sortTotalTimeDescending): Call ProfileNode.
(WebCore::sortTotalTimeAscending): Ditto.
(WebCore::sortSelfTimeDescending): Ditto.
(WebCore::sortSelfTimeAscending): Ditto.
(WebCore::sortCallsDescending): Ditto.
(WebCore::sortCallsAscending): Ditto.
(WebCore::ProfileNodeClass): Add static static functions.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33931
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
timothy@apple.com [Tue, 20 May 2008 13:58:12 +0000 (13:58 +0000)]
Make the profiler use higher than millisecond resolution time-stamps.
Reviewed by Kevin McCullough.
* kjs/DateMath.cpp:
(KJS::getCurrentUTCTime): Call getCurrentUTCTimeWithMicroseconds and
floor the result.
(KJS::getCurrentUTCTimeWithMicroseconds): Copied from the previous
implementation of getCurrentUTCTime without the floor call.
* kjs/DateMath.h: Addded getCurrentUTCTimeWithMicroseconds.
* profiler/ProfileNode.cpp:
(KJS::ProfileNode::ProfileNode): Use getCurrentUTCTimeWithMicroseconds.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33930
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
timothy@apple.com [Tue, 20 May 2008 13:57:58 +0000 (13:57 +0000)]
* page/InspectorController.cpp: Change the include for
JavaScriptProfile.h to sue double quotes instead of backets.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33929
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
timothy@apple.com [Tue, 20 May 2008 13:57:41 +0000 (13:57 +0000)]
Fixes a bug in the profiler where call and apply would show up
and double the time spent in a function. We don't want to show call
and apply at all in the profiles. This change excludes them.
Reviewed by Kevin McCullough.
* profiler/ProfileNode.cpp:
(KJS::ProfileNode::stopProfiling): Remove a second for loop and
calculate self time in the existing loop.
* profiler/Profiler.cpp:
(KJS::shouldExcludeFunction): Helper inline function that returns
true in the current function in an InternalFunctionImp and it is
has the functionName call or apply.
(KJS::Profiler::willExecute): Call shouldExcludeFunction and return
early if if returns true.
(KJS::Profiler::didExecute): Ditto.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33928
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
timothy@apple.com [Tue, 20 May 2008 13:57:27 +0000 (13:57 +0000)]
Adds a DataGrid object that is used for multi-column data
and can contain hierarchical content with disclosure arrows.
A lot of DataGrid was copied from treeoutline.js. This change
makes the database views use the DataGrid. It will later be
used by the ProfileView.
Reviewed by Adam Roben.
* page/inspector/DataGrid.js: Added. Most copied from treeoutline.js
and modified to work with table elements.
* page/inspector/DatabaseQueryView.js:
(WebInspector.DatabaseQueryView.prototype._queryFinished):
Call DatabasesPanel.dataGridForResult and adds the inline style to
the DataGrid element.
* page/inspector/DatabaseTableView.js:
(WebInspector.DatabaseTableView.prototype._queryFinished):
Call DatabasesPanel.dataGridForResult.
* page/inspector/DatabasesPanel.js:
(WebInspector.DatabasesPanel.prototype._tableForResult): Removed.
(WebInspector.DatabasesPanel.prototype.dataGridForResult): Added.
Similar to the previous _tableForResult function, but makes a DataGrid.
* page/inspector/inspector.css: Changes to the data-grid
style rules.
* WebCore.vcproj/WebCore.vcproj: Add DataGrid.js.
* page/inspector/WebKit.qrc: Ditto.
* page/inspector/inspector.html: Ditto.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33927
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
jmalonzo@webkit.org [Tue, 20 May 2008 11:52:08 +0000 (11:52 +0000)]
2008-05-20 Jan Michael Alonzo <jmalonzo@webkit.org>
Reviewed by Alp.
http://bugs.webkit.org/show_bug.cgi?id=18483
[Gtk] Autotools should match build-webkit default flags
* configure.ac:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33926
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
slewis@apple.com [Tue, 20 May 2008 07:29:40 +0000 (07:29 +0000)]
fix changelog
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33921
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
slewis@apple.com [Tue, 20 May 2008 06:49:46 +0000 (06:49 +0000)]
2008-05-19 Stephanie Lewis <slewis@apple.com>
Explicitly set run mode to 32bit unless overridden to avoid
confusion when running tests
* Scripts/build-dumprendertree:
* Scripts/gdb-safari:
* Scripts/run-webkit-tests:
* Scripts/webkitdirs.pm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33750
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
aroben@apple.com [Tue, 20 May 2008 04:00:31 +0000 (04:00 +0000)]
Make WebKit.idl rebuild whenever any of its included interfaces are changed
Reviewed by Tim Hatcher.
* WebKit.vcproj/DerivedSources.make: Touch WebKit.idl whenever any
other IDL file is changed. This will force VS to rebuild WebKit.idl.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33598
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mitz@apple.com [Tue, 20 May 2008 03:42:50 +0000 (03:42 +0000)]
Reviewed by Adam Roben.
- update test results following <http://trac.webkit.org/changeset/33395>
* platform/mac/fast/frames/viewsource-attribute-expected.checksum:
* platform/mac/fast/frames/viewsource-attribute-expected.png:
* platform/mac/fast/frames/viewsource-attribute-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33597
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kmccullough@apple.com [Tue, 20 May 2008 03:31:28 +0000 (03:31 +0000)]
2008-05-19 Kevin McCullough <kmccullough@apple.com>
Reviewed by Tim.
<rdar://problem/5770054> JavaScript profiler (10928)
- Implement sorting by function name.
* JavaScriptCore.exp:
* profiler/Profile.h:
(KJS::Profile::sortFileNameDescending):
(KJS::Profile::sortFileNameAscending):
* profiler/ProfileNode.cpp:
(KJS::fileNameDescendingComparator):
(KJS::ProfileNode::sortFileNameDescending):
(KJS::fileNameAscendingComparator):
(KJS::ProfileNode::sortFileNameAscending):
* profiler/ProfileNode.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33596
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kmccullough@apple.com [Tue, 20 May 2008 03:23:34 +0000 (03:23 +0000)]
2008-05-19 Kevin McCullough <kmccullough@apple.com>
Reviewed by Adam.
-build fix.
* bindings/js/JSConsoleCustom.cpp:
(WebCore::JSConsole::profile):
* page/Console.cpp:
(WebCore::Console::profile):
* page/Console.h:
* page/Console.idl:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33595
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
alp@webkit.org [Tue, 20 May 2008 03:19:04 +0000 (03:19 +0000)]
2008-05-19 Alp Toker <alp@nuanti.com>
Reviewed by Maciej.
GTK+/soup fixes:
Remove the fragment part of the URL since the file backend doesn't
deal with it.
Fix a typo in the cleanup function.
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::cleanupGioOperation):
(WebCore::ResourceHandle::startGio):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33594
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kmccullough@apple.com [Tue, 20 May 2008 02:03:14 +0000 (02:03 +0000)]
JavaScriptCore:
2008-05-19 Kevin McCullough <kmccullough@apple.com>
Reviewed by Adam.
<rdar://problem/5770054> JavaScript profiler (10928)
- Pass the exec state to profiler when calling startProfiling so that if
profiling is started within an execution context that location is
recorded correctly.
* JavaScriptCore.exp:
* profiler/ProfileNode.cpp:
(KJS::ProfileNode::printDataInspectorStyle): Dump more info for debugging
purposes.
* profiler/Profiler.cpp:
(KJS::Profiler::startProfiling):
* profiler/Profiler.h:
WebCore:
2008-05-19 Kevin McCullough <kmccullough@apple.com>
Reviewed by Adam.
<rdar://problem/5770054> JavaScript profiler (10928)
- Send the executing context to the profiler so it can attribute time
correctly to parent functions when calling profile() and profileEnd()
while nested.
* page/Console.cpp:
(WebCore::Console::profile):
(WebCore::Console::profileEnd):
* page/Console.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33593
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kmccullough@apple.com [Tue, 20 May 2008 01:14:28 +0000 (01:14 +0000)]
2008-05-19 Kevin McCullough <kmccullough@apple.com>
Rubberstamped by Geoff.
Turn off the profiler because it is a performance regression.
* kjs/config.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33592
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
alp@webkit.org [Tue, 20 May 2008 01:12:20 +0000 (01:12 +0000)]
2008-05-19 Alp Toker <alp@nuanti.com>
Reviewed by Anders and Beth.
http://bugs.webkit.org/show_bug.cgi?id=16495
[GTK] Accessibility support with ATK/AT-SPI
Initial ATK/AT-SPI accessibility support for the GTK+ port.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33591
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
andersca@apple.com [Tue, 20 May 2008 00:46:32 +0000 (00:46 +0000)]
WebCore:
2008-05-19 Anders Carlsson <andersca@apple.com>
Reviewed by Adam.
<rdar://problem/5946454>
Support navigator.onLine from HTML5.
Add Windows NetworkStateNotifier implementation using the IP Helper API.
* WebCore.vcproj/WebCore.vcproj:
* platform/network/NetworkStateNotifier.h:
(WebCore::updateState):
* platform/network/win/NetworkStateNotifierWin.cpp: Added.
(WebCore::NetworkStateNotifier::updateState):
(WebCore::NetworkStateNotifier::addressChanged):
(WebCore::NetworkStateNotifier::callAddressChanged):
(WebCore::NetworkStateNotifier::addrChangeCallback):
(WebCore::NetworkStateNotifier::registerForAddressChange):
(WebCore::NetworkStateNotifier::NetworkStateNotifier):
WebKit/win:
2008-05-19 Anders Carlsson <andersca@apple.com>
Reviewed by Adam.
<rdar://problem/5946454>
Support navigator.onLine from HTML5.
Link with iphlpapi.lib, and make iphlpapi.dll a delay loaded library.
* WebKit.vcproj/WebKit.vcproj:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33590
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
sfalken@apple.com [Tue, 20 May 2008 00:00:46 +0000 (00:00 +0000)]
Disable C4273, C4565 for CSSGrammar.cpp, XPathGrammar.cpp to fix build.
Reviewed by Adam Roben.
* WebCore.vcproj/WebCore.vcproj:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33587
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
aroben@apple.com [Mon, 19 May 2008 23:52:33 +0000 (23:52 +0000)]
Fix Bug 19065: Resources with a space in their URL don't get error/warning bubbles
<https://bugs.webkit.org/show_bug.cgi?id=19065>
Reviewed by Dan Bernstein.
Test: manual-tests/inspector/errors-with-space in-url.html
* manual-tests/inspector/errors-with-space in-url.html: Added.
* page/Console.cpp:
(WebCore::Console::error):
(WebCore::Console::info):
(WebCore::Console::log):
(WebCore::Console::warn):
Pass the raw URL to the Inspector, not the pretty URL, to match the
URL that was used when initially telling the Inspector about this
resource. We continue to pass the pretty URL to the ChromeClient for
backwards compatibility.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33586
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
slewis@apple.com [Mon, 19 May 2008 23:22:08 +0000 (23:22 +0000)]
2008-05-19 Stephanie Lewis <slewis@apple.com>
Reviewed by Darin.
more fast teardown performance work
* Misc/WebDownload.m:
(-[WebDownloadInternal downloadDidBegin:]):
(-[WebDownloadInternal downloadDidFinish:]):
(-[WebDownloadInternal download:didFailWithError:]):
* WebCoreSupport/WebChromeClient.h:
* WebCoreSupport/WebChromeClient.mm:
(WebChromeClient::disableSuddenTermination):
(WebChromeClient::enableSuddenTermination):
more fast teardown performance work, WebCore plumbing
* page/Chrome.cpp:
(WebCore::Chrome::disableSuddenTermination):
(WebCore::Chrome::enableSuddenTermination):
(WebCore::ChromeClient::disableSuddenTermination):
(WebCore::ChromeClient::enableSuddenTermination):
* page/Chrome.h:
* page/ChromeClient.h:
* page/Page.cpp:
(WebCore::Page::changePendingUnloadEventCount):
(WebCore::Page::changePendingBeforeUnloadEventCount):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33585
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
alp@webkit.org [Mon, 19 May 2008 23:06:49 +0000 (23:06 +0000)]
2008-05-19 Alp Toker <alp@nuanti.com>
GTK+ build fix for Mac/Win. Don't check for FreeType/FontConfig when
the Pango font backend is selected.
* GNUmakefile.am:
* configure.ac:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33584
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
justin.garcia@apple.com [Mon, 19 May 2008 22:44:45 +0000 (22:44 +0000)]
2008-05-19 Kuchhal <kuchal@yahoo.com>
Reviewed by Justin.
<rdar://problem/5863412> Crash when Ctrl C is pressed after a series of specific mouse events (18506)
* editing/markup.cpp:
(WebCore::createMarkup): Null check.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33583
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cfleizach@apple.com [Mon, 19 May 2008 22:17:09 +0000 (22:17 +0000)]
<rdar://problem/5912195> CrashTracer: [USER] 1 crash in Mail at -[AccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33582
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kmccullough@apple.com [Mon, 19 May 2008 22:15:30 +0000 (22:15 +0000)]
2008-05-19 Kevin McCullough <kmccullough@apple.com>
Reviewed by Tim.
<rdar://problem/5770054> JavaScript profiler (10928)
-In an effort to make the profiler as efficient as possible instead of
prepending to a vector we keep the vector in reverse order and operate
over it backwards.
* profiler/Profile.cpp:
(KJS::Profile::willExecute):
(KJS::Profile::didExecute):
* profiler/ProfileNode.cpp:
(KJS::ProfileNode::didExecute):
(KJS::ProfileNode::endAndRecordCall):
* profiler/ProfileNode.h:
* profiler/Profiler.cpp:
(KJS::getStackNames):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33581
268f45cc-cd09-0410-ab3c-
d52691b4dbfc