- 21 May, 2008 16 commits
-
-
mrowe@apple.com authored
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33979 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
andersca@apple.com authored
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: http://svn.webkit.org/repository/webkit/trunk@33978 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
mitz@apple.com authored
- 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: http://svn.webkit.org/repository/webkit/trunk@33977 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
timothy@apple.com authored
<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: http://svn.webkit.org/repository/webkit/trunk@33976 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
darin@apple.com authored
* Scripts/make-js-test-wrappers: Added another exception. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33974 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
darin@apple.com authored
- 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: http://svn.webkit.org/repository/webkit/trunk@33973 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
darin@apple.com authored
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: http://svn.webkit.org/repository/webkit/trunk@33972 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
darin@apple.com authored
- 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: http://svn.webkit.org/repository/webkit/trunk@33971 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
timothy@apple.com authored
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: http://svn.webkit.org/repository/webkit/trunk@33970 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
timothy@apple.com authored
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: http://svn.webkit.org/repository/webkit/trunk@33969 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
darin@apple.com authored
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: http://svn.webkit.org/repository/webkit/trunk@33968 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
ap@webkit.org authored
<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: http://svn.webkit.org/repository/webkit/trunk@33967 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
ap@webkit.org authored
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: http://svn.webkit.org/repository/webkit/trunk@33966 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
kmccullough@apple.com authored
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: http://svn.webkit.org/repository/webkit/trunk@33965 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
hausmann@webkit.org authored
Reviewed by Simon. For the Qt port, fix building with Qt for Embedded Linux. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33964 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
hausmann@webkit.org authored
Reviewed by Simon. For the Qt port, allow building without NPAPI plugin support. * WebCore.pro: * plugins/PluginView.h: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33963 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 20 May, 2008 24 commits
-
-
kevino@webkit.org authored
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: http://svn.webkit.org/repository/webkit/trunk@33957 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
kmccullough@apple.com authored
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: http://svn.webkit.org/repository/webkit/trunk@33955 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
timothy@apple.com authored
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: http://svn.webkit.org/repository/webkit/trunk@33952 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
alp@webkit.org authored
Reviewed by Alp Toker. Fix for previous autotools change. * configure.ac: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33951 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
aroben@apple.com authored
Rubberstamped and suggested by Sam Weinig. * bindings/js/JSConsoleCustom.cpp: (WebCore::JSConsole::assertCondition): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33949 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
adele@apple.com authored
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: http://svn.webkit.org/repository/webkit/trunk@33948 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
kmccullough@apple.com authored
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: http://svn.webkit.org/repository/webkit/trunk@33947 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
aroben@apple.com authored
<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: http://svn.webkit.org/repository/webkit/trunk@33946 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
kmccullough@apple.com authored
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: http://svn.webkit.org/repository/webkit/trunk@33945 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
kmccullough@apple.com authored
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: http://svn.webkit.org/repository/webkit/trunk@33943 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
kmccullough@apple.com authored
Accidentally turned on the profiler. * kjs/config.h: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33942 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
kmccullough@apple.com authored
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: http://svn.webkit.org/repository/webkit/trunk@33941 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
alice.liu@apple.com authored
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: http://svn.webkit.org/repository/webkit/trunk@33940 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
mitz@apple.com authored
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: http://svn.webkit.org/repository/webkit/trunk@33939 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
timothy@apple.com authored
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: http://svn.webkit.org/repository/webkit/trunk@33938 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
rdar://problem/5060458cfleizach@apple.com authored
<rdar://problem/3438014> Might need accessibility solution for context menus in web pages git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33937 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
timothy@apple.com authored
JavaScriptProfileNode. Reviewed by Kevin McCullough. * page/JavaScriptProfileNode.cpp: (WebCore::sortFunctionNameDescending): Call ProfileNode. (WebCore::sortFunctionNameAscending): Ditto. (WebCore::ProfileNodeClass): Add static functions. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33936 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
timothy@apple.com authored
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: http://svn.webkit.org/repository/webkit/trunk@33935 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
darin@apple.com authored
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: http://svn.webkit.org/repository/webkit/trunk@33934 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
kmccullough@apple.com authored
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: http://svn.webkit.org/repository/webkit/trunk@33933 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
kevino@webkit.org authored
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33932 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
timothy@apple.com authored
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: http://svn.webkit.org/repository/webkit/trunk@33931 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
timothy@apple.com authored
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: http://svn.webkit.org/repository/webkit/trunk@33930 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
timothy@apple.com authored
JavaScriptProfile.h to sue double quotes instead of backets. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33929 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-