1. 13 May, 2008 40 commits
    • andersca@apple.com's avatar
      2008-05-13 Anders Carlsson <andersca@apple.com> · 88f0e02f
      andersca@apple.com authored
              Reviewed by Sam.
              Don't empty the application cache in _setCacheModel, since it will be called during initialization.
              Instead, do it in [WebCache empty].
              * Misc/WebCache.mm:
              (+[WebCache empty]):
              * WebView/WebView.mm:
              (+[WebView _setCacheModel:]):
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33423 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • andersca@apple.com's avatar
      2008-05-13 Anders Carlsson <andersca@apple.com> · 6bdff067
      andersca@apple.com authored
              Reviewed by Sam.
              <rdar://problem/5933644> Implement Date.now
              Implement Date.now which returns the number of milliseconds since the epoch.
              * kjs/CommonIdentifiers.h:
              * kjs/date_object.cpp:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33422 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • cfleizach@apple.com's avatar
    • cfleizach@apple.com's avatar
    • aroben@apple.com's avatar
      Restore some ChangeLog entries that were deleted in r33395 · 8ba4087d
      aroben@apple.com authored
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33417 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • timothy@apple.com's avatar
      Adds an overlay window that covers the scripts panel and · 1c01b264
      timothy@apple.com authored
      informs the user that they need to attach the debugger.
      Provides an "Attach Debugger" button below the info text.
      Reviewed by Dan Bernstein.
      * English.lproj/localizedStrings.js: New strings.
      * page/inspector/ScriptsPanel.js:
      (WebInspector.ScriptsPanel): Create the overlay elements and
      append to the main panel element.
      * page/inspector/inspector.css: New styles for the over lay elements.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33416 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • timothy@apple.com's avatar
      Fixes a crash seen in Xcode where CallUIDelegateReturningBoolean · b706da23
      timothy@apple.com authored
      was referencing a nil WebView under validateUserInterfaceItem.
      The validateUserInterfaceItem methods was being called at a time
      when the WebHTMLView is being torndown.
      <rdar://problem/5806229> A crash occurs at CallUIDelegateReturningBoolean()
      while mousing down on menu bar after Xcode News window is opened
      Reviewed by Ada Chan.
      * WebView/WebHTMLView.mm:
      (-[WebHTMLView validateUserInterfaceItem:]): NULL check the WebView and
      return NO when it is nil. Adds a comment.
      * WebView/WebPDFView.mm:
      (-[WebPDFView validateUserInterfaceItem:]): Ditto.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33415 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • timothy@apple.com's avatar
      Fixes the assertion and crash that would happen when inspecting a element from a frame. · a5d0af3b
      timothy@apple.com authored
      This change makes JSInspectedObjectWrapper pass unwrapped objects around for global objects
      that share the same page group identifier. Also returns jsUndefined() instead of 0 to prevent
      crashing in release builds if the page groups don't match.
      Passes all the tests in: manual-tests/inspector-wrappers
      Reviewed by Adam Roben.
      * bindings/js/JSInspectedObjectWrapper.cpp:
      (WebCore::JSInspectedObjectWrapper::prepareIncomingValue): Return jsUndefined() instead of 0.
      Call allowsUnwrappedAccessFrom instead of unwrappedExecStateMatches.
      * bindings/js/JSQuarantinedObjectWrapper.cpp:
      (WebCore::JSQuarantinedObjectWrapper::allowsUnwrappedAccessFrom): Renamed from unwrappedExecStateMatches.
      Return true if the pageGroupIdentifier of both wrappers match.
      (WebCore::JSQuarantinedObjectWrapper::callAsFunction): Return jsUndefined() instead of 0.
      * bindings/js/JSQuarantinedObjectWrapper.h: Renamed unwrappedExecStateMatches to allowsUnwrappedAccessFrom.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33414 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • timothy@apple.com's avatar
      Fixes the hang that could happen when option-clicking to expand · f1d15fc9
      timothy@apple.com authored
      a disclosure triangle in the Properties pane. This change limits
      the recursion depth when expanding the tree elements.
      <rdar://problem/5847681> Safari hangs when option-clicking a
      disclosure triangle in the Inspector's Properties pane
      Reviewed by John Sullivan.
      * page/inspector/treeoutline.js:
      (TreeElement.prototype.expandRecursively): Pass an empty info object to
      traverseNextTreeElement to get the depthChange value. This is used to
      compute a current depth. If the depth exceeds the maxDepth argument, the
      item isn't expanded and children wont be populated when traverseNextTreeElement
      is called until the depth goes below the maxDepth.
      (TreeElement.prototype.traverseNextTreeElement): Added a new info
      argument that can be optionally used to return extra info like depth change.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33413 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • timothy@apple.com's avatar
      Adds info text to panes and sections in the Inspector's sidebars · 5c7a4b23
      timothy@apple.com authored
      that would normally be empty. These help the user know why there
      is nothing in these sections.
      Reviewed by John Sullivan.
      * English.lproj/localizedStrings.js: Add strings.
      * page/inspector/BreakpointsSidebarPane.js: Adds "No Breakpoints".
      * page/inspector/CallStackSidebarPane.js: Adds "Not Paused".
      * page/inspector/ObjectPropertiesSection.js: Adds "No Properties".
      * page/inspector/ScopeChainSidebarPane.js: Adds "Not Paused".
      * page/inspector/inspector.css: Adds style rules for the info elements.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33412 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • timothy@apple.com's avatar
      Implements the rest of the Scripts panel to get the debugger · 55a36e48
      timothy@apple.com authored
      mostly working. "Basic debugging seems to work."
      Reviewed by Geoff Garen.
      * English.lproj/localizedStrings.js: Adds new strings.
      * page/inspector/Resource.js:
      (WebInspector.Resource.prototype.get scripts): Returns _scripts and
      creates it lazily.
      (WebInspector.Resource.prototype.addScript): Add the script object to the
      front of the _scripts array.
      (WebInspector.Resource.prototype.removeAllScripts): Removed all the scripts
      and removes the resource back-reference.
      (WebInspector.Resource.prototype.removeScript): Removes the script and
      breaks the resource back-reference.
      * page/inspector/ResourceView.js:
      (WebInspector.ResourceView): Adds a reminder comment.
      (WebInspector.ResourceView.prototype.get headersVisible): Returns _headersVisible.
      (WebInspector.ResourceView.prototype.set headersVisible): Stubs out
      a setter that currently just sets _headersVisible. Has a comment that
      points out this needs implemented when network headers are added.
      * page/inspector/ResourcesPanel.js:
      (WebInspector.ResourcesPanel.prototype.show): Sets the headersVisible property of
      the visible view to true and shows it again, in case it was being shown in Scripts.
      Copies the headersVisible property from the old view to the new view.
      (WebInspector.ResourcesPanel.prototype.showResource): Sets the headersVisible
      property to true before showing.
      * page/inspector/ScriptView.js:
      (WebInspector.ScriptView): Passes in _addBreakpoint for the add breakpoint delegate.
      (WebInspector.ScriptView.prototype._addBreakpoint): Calls ScriptsPanel's addBreakpoint
      for the current Script.sourceID and line.
      * page/inspector/ScriptsPanel.js:
      (WebInspector.ScriptsPanel.prototype.show): Sets the headersVisible property of
      the visible view to false and shows it again, in case it was being shown in Resources.
      (WebInspector.ScriptsPanel.prototype.addScript): Makes a new Script object and
      adds it to a Resource if one is found. Registers any breakpoint that match
      the new Script's source URL, and sets the sourceID of the breakpoints.
      (WebInspector.ScriptsPanel.prototype.addBreakpoint): Adds the breakpoint to the
      BreakpointsSidebarPane. Also adds it to _breakpointsURLMap so it can be found
      later in addScript by URL. Finally adds the breakpoint to the SourceFrame that
      represents the resources or script.
      (WebInspector.ScriptsPanel.prototype.removeBreakpoint): Removes the breakpoint from
      the BreakpointsSidebarPane, _breakpointsURLMap and SourceFrame.
      (WebInspector.ScriptsPanel.prototype.debuggerPaused): Update the debugger
      state variables, the buttons and the CallStackSidebarPane.
      (WebInspector.ScriptsPanel.prototype.reset): Clears and resets debugger
      and interface state.
      (WebInspector.ScriptsPanel.prototype.get visibleView): Returns _visibleView.
      (WebInspector.ScriptsPanel.prototype.set visibleView): Sets _visibleView and
      calls hide on the old view and show on the new view.
      (WebInspector.ScriptsPanel.prototype.showScript): Calls _showScriptOrResource.
      (WebInspector.ScriptsPanel.prototype.showResource): Ditto.
      (WebInspector.ScriptsPanel.prototype.scriptViewForScript): Lazily creates a
      ScriptView for the Script and returns it.
      (WebInspector.ScriptsPanel.prototype.sourceFrameForScript): Returns the SourceFrame
      for the Script.
      (WebInspector.ScriptsPanel.prototype._sourceFrameForScriptOrResource): Returns the
      SourceFrame based on the type of object passed in.
      (WebInspector.ScriptsPanel.prototype._showScriptOrResource): Shows the view based on
      the type of object passed in. If the object is a resource and there are breakpoints
      defined for that Resource URL, then populate the SourceFrame with the breakpoints.
      (WebInspector.ScriptsPanel.prototype._addScriptToFilesMenu): Adds a script to the
      files menu. If the Script is part of a resource, that resource is added.
      (WebInspector.ScriptsPanel.prototype._removeScriptFromFilesMenu): Remove a script from
      the files menu. If that script is part of a resource and it is the last script of that
      resource, then remove the whole resource.
      (WebInspector.ScriptsPanel.prototype._clearCurrentExecutionLine): Clears the execution
      line from the SourceFrame that is showing it.
      (WebInspector.ScriptsPanel.prototype._callFrameSelected): Event listener for when the
      call frame changes in the CallStackSidebarPane. Triggers updates to the ScopeChainSidebarPane
      and the visible view.
      (WebInspector.ScriptsPanel.prototype._changeVisibleFile): Event listener for the change state
      of the files select element.
      (WebInspector.ScriptsPanel.prototype._updateDebuggerButtons): Update more of the
      buttons to reflect the current debugger state. Updates the status text too.
      (WebInspector.ScriptsPanel.prototype._toggleDebugging): Reset the UI and state when
      the debugger is attached/detached.
      (WebInspector.ScriptsPanel.prototype._togglePause): Call InspectorController.resumeDebugger or
      InspectorController.pauseInDebugger depending on the paused state.
      (WebInspector.ScriptsPanel.prototype._stepOverClicked): Call InspectorController.stepOverStatementInDebugger.
      (WebInspector.ScriptsPanel.prototype._stepIntoClicked): Call InspectorController.stepIntoStatementInDebugger.
      (WebInspector.ScriptsPanel.prototype._stepOutClicked): InspectorController.stepOutOfFunctionInDebugger.
      * page/inspector/SourceView.js:
      (WebInspector.SourceView): Passes in _addBreakpoint for the add breakpoint delegate.
      (WebInspector.SourceView.prototype._addBreakpoint): Calls ScriptsPanel's addBreakpoint
      for the nearest Script's sourceID and passed in line.
      * page/inspector/inspector.css: New style rules for the UI changes.
      * page/inspector/inspector.js:
      (WebInspector.loaded): Add the ScriptsPanel to the panels list.
      (WebInspector.parsedScriptSource): Call ScriptsPanel.addScript.
      (WebInspector.failedToParseScriptSource): Ditto.
      (WebInspector.pausedScript): Call ScriptsPanel.debuggerPaused.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33411 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • timothy@apple.com's avatar
      Adds implementations of the Scope Chain and Call Stack sidebar panes. · 46aa3b72
      timothy@apple.com authored
      These panes use the JSJavaScriptCallFrame object that will be passed
      to the update functions.
      Reviewed by Kevin McCullough.
      * English.lproj/localizedStrings.js: Adds new strings.
      * WebCore.vcproj/WebCore.vcproj: Adds new files.
      * page/inspector/CallStackSidebarPane.js:
      (WebInspector.CallStackSidebarPane.prototype.update): Walk the
      caller chain of the call frame and make placards for each.
      (WebInspector.CallStackSidebarPane.prototype.get selectedCallFrame):
      Return _selectedCallFrame.
      (WebInspector.CallStackSidebarPane.prototype.set selectedCallFrame):
      Set _selectedCallFrame and dispatch the "call frame selected" event.
      Set the selectedCallFrame based on the clicked placard.
      * page/inspector/Placard.js: Added. A user interface object that can
      be used to show a title and a subtitle block with a selected state.
      * page/inspector/ScopeChainSidebarPane.js: Added.
      (WebInspector.ScopeChainSidebarPane): Call the base object and set the title.
      (WebInspector.ScopeChainSidebarPane.prototype.update): Iterate over the
      call frame's scope chain and make ObjectPropertiesSections for each.
      * page/inspector/SidebarPane.js:
      (WebInspector.SidebarPane.prototype): Inherit from WebInspector.Object.
      * page/inspector/WebKit.qrc: Add new files.
      * page/inspector/inspector.css: Add placard styles.
      * page/inspector/inspector.html: Add new files.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33410 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • timothy@apple.com's avatar
      Fixes the bug where SourceViews would be blank if shown before · 018e37e6
      timothy@apple.com authored
      the Resource finished loading.
      <rdar://problem/5807420> Safari's Web Inspector won't display the
      contents of some CSS and JS files
      Reviewed by Kevin McCullough.
      * page/inspector/Resource.js:
      (WebInspector.Resource.prototype.set finished): Dispatch the finished event
      (WebInspector.Resource.prototype): Inherit from WebInspector.Object.prototype.
      * page/inspector/SourceView.js:
      (WebInspector.SourceView): Register for the finished event on the resource.
      When the event fires, setup the source frame and deregister the event.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33409 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • timothy@apple.com's avatar
      Factored most of SourceView out into SourceFrame so it can be shared · 187b6eaa
      timothy@apple.com authored
      by the new ScriptView. Added the ScriptView class to be used for
      scripts that arn't Resources (like eval code.) Added a simple Script
      object that hold the data from the debugger parsedSource hooks. A
      ScriptView holds a Script object, and uses it for source data.
      Added breakpoint and execution line support to the SourceFrame
      where they are visually represented in the source.
      Reviewed by Kevin McCullough.
      * page/inspector/inspector.js:
      (WebInspector.performSearch): Change the caller of sourceFrameForResource
      to use the SourceFrame result's element property.
      * page/inspector/ResourcesPanel.js: Use the new SourceFrame.
      * page/inspector/Script.js: Added.
      * page/inspector/ScriptView.js: Added.
      * page/inspector/SourceFrame.js: Added.
      * page/inspector/SourceView.js: Use the new SourceFrame.
      * WebCore.vcproj/WebCore.vcproj: Add new files.
      * page/inspector/WebKit.qrc: Ditto.
      * page/inspector/inspector.html: Ditto.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33408 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • timothy@apple.com's avatar
      Adds a Breakpoint object and basic add/remove functions on · 7f231c95
      timothy@apple.com authored
      BreakpointsSidebarPane that call the InspectorController to
      add/remove the breakpoint.
      Reviewed by Kevin McCullough.
      * page/inspector/Breakpoint.js:
      (WebInspector.Breakpoint.prototype.get enabled): Return _enabled.
      (WebInspector.Breakpoint.prototype.set enabled): Set _enabled and
      dispatch the enabled/disabled event to listeners.
      * page/inspector/BreakpointsSidebarPane.js:
      (WebInspector.BreakpointsSidebarPane): Add a breakpoints array.
      Adds the breakpoint to the breakpoints array. Registers for the disabled
      and enabled event types. Call InspectorController.addBreakpoint if attached.
      Removes the breakpoint from the breakpoints array. Deregisters for the disabled
      and enabled event types. Call InspectorController.removeBreakpoint if attached.
      Call InspectorController.addBreakpoint or InspectorController.removeBreakpoint
      depending on the enabled state of the breakpoint.
      * WebCore.vcproj/WebCore.vcproj: Add new files.
      * page/inspector/WebKit.qrc: Ditto.
      * page/inspector/inspector.html: Ditto.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33407 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • timothy@apple.com's avatar
      Make addSourceToFrame not dependent on InspectorResource so it · 70545d68
      timothy@apple.com authored
      can be used to add source of a passed in string and mime-type to
      a frame. Added addResourceSourceToFrame for use by SourceView.
      Also fixes an assertion because of an incorrect static_cast of identifiers
      to unsigned long long, when they can be unsigned.
      Reviewed by Geoff Garen.
      * page/InspectorController.cpp:
      (WebCore::addSourceToFrame): Helper function used by addSourceToFrame
      and addResourceSourceToFrame.
      (WebCore::addSourceToFrame): Generalized to take a source and mime-type string.
      (WebCore::addResourceSourceToFrame): Renamed from addSourceToFrame.
      (WebCore::getResourceDocumentNode): Fixes the static_cast to be long long.
      (WebCore::InspectorController::windowScriptObjectAvailable): Adds
      addResourceSourceToFrame to the JavaScript class.
      * page/inspector/SourceView.js: Use the new addResourceSourceToFrame.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33406 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • timothy@apple.com's avatar
      Add debugger related functions to the InspectorController and · c8a33e45
      timothy@apple.com authored
      expose them to the JavaScript side of InspectorController.
      Reviewed by Geoff Garen.
      * page/InspectorController.cpp:
      (WebCore::jsStringRef): Added helper to convert a UString to a JSStringRef.
      (WebCore::currentCallFrame): Call InspectorController::currentCallFrame.
      (WebCore::pauseInDebugger): Call InspectorController::pauseInDebugger.
      (WebCore::resumeDebugger): Call InspectorController::resumeDebugger.
      (WebCore::stepOverStatementInDebugger): Call InspectorController::stepOverStatementInDebugger.
      (WebCore::stepIntoStatementInDebugger): Call InspectorController::stepIntoStatementInDebugger.
      (WebCore::stepOutOfFunctionInDebugger): Call InspectorController::stepOutOfFunctionInDebugger.
      (WebCore::addBreakpoint): Call InspectorController::addBreakpoint.
      (WebCore::removeBreakpoint): Call InspectorController::removeBreakpoint.
      (WebCore::InspectorController::windowScriptObjectAvailable): Add the new functions to the
      InspectorController JavaScript class.
      (WebCore::InspectorController::startDebuggingAndReloadInspectedPage): Clear breakpoints.
      (WebCore::InspectorController::currentCallFrame): Return the currentCallFrame from the
      (WebCore::InspectorController::pauseInDebugger): Call JavaScriptDebugServer's pauseOnNextStatement.
      (WebCore::InspectorController::resumeDebugger): Call JavaScriptDebugServer's resume.
      (WebCore::InspectorController::stepOverStatementInDebugger):  Call JavaScriptDebugServer's stepOverStatement.
      (WebCore::InspectorController::stepIntoStatementInDebugger): Call JavaScriptDebugServer's stepIntoStatement.
      (WebCore::InspectorController::stepOutOfFunctionInDebugger): Call JavaScriptDebugServer's stepOutOfFunction.
      (WebCore::InspectorController::addBreakpoint): Call JavaScriptDebugServer's addBreakpoint.
      (WebCore::InspectorController::removeBreakpoint): Call JavaScriptDebugServer's removeBreakpoint.
      (WebCore::InspectorController::didParseSource): Call into the Inspector's JavaScript.
      (WebCore::InspectorController::failedToParseSource): Ditto.
      (WebCore::InspectorController::didPause): Ditto.
      * page/InspectorController.h: Add new functions.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33405 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • timothy@apple.com's avatar
      Implements more debugger APIs on JavaScriptDebugServer and reduces · 12d60aab
      timothy@apple.com authored
      the number of callbacks to JavaScriptDebugListeners. These changes
      will better facilitate debugger optimizations when SquirrelFish merges.
      Reviewed by Kevin McCullough.
      * page/InspectorController.cpp:
      (WebCore::InspectorController::didParseSource): Removed the ExecState.
      (WebCore::InspectorController::failedToParseSource): Ditto.
      (WebCore::InspectorController::didPause): Added.
      * page/InspectorController.h: Changed the JavaScriptDebugListener functions.
      * page/JavaScriptDebugListener.h: Removed some callbacks and added didPause.
      * page/JavaScriptDebugServer.cpp:
      (WebCore::JavaScriptDebugServer::JavaScriptDebugServer): Initialize new data members.
      (WebCore::JavaScriptDebugServer::~JavaScriptDebugServer): Delete all values of m_breakpoints.
      (WebCore::JavaScriptDebugServer::removeListener): Call resume if the last listener was removed.
      (WebCore::JavaScriptDebugServer::hasListenersInterestedInPage): Returns true if there are any
      global listeners or a listener for the page.
      (WebCore::JavaScriptDebugServer::addBreakpoint): Adds and entry to m_breakpoints.
      (WebCore::JavaScriptDebugServer::removeBreakpoint): Removes a entry in m_breakpoints.
      (WebCore::JavaScriptDebugServer::hasBreakpoint):  Checks if there is a breakpoint for the
      sourceID and line.
      (WebCore::JavaScriptDebugServer::clearBreakpoints): Removed all breakpoints.
      (WebCore::JavaScriptDebugServer::pauseOnNextStatement): Sets m_pauseOnNextStatement to true.
      (WebCore::JavaScriptDebugServer::resume): Sets m_paused to false.
      (WebCore::JavaScriptDebugServer::stepIntoStatement): Calls resume and sets
      m_pauseOnNextStatement to true.
      (WebCore::JavaScriptDebugServer::stepOverStatement): Calls resume and sets m_pauseOnExecState to
      the current call frame's ExecState.
      (WebCore::JavaScriptDebugServer::stepOutOfFunction): Calls resume and sets m_pauseOnExecState to
      the current call frame's caller ExecState.
      (WebCore::JavaScriptDebugServer::currentCallFrame): Returns m_currentCallFrame if paused.
      (WebCore::dispatchDidParseSource): Removed the ExecState argument.
      (WebCore::dispatchFailedToParseSource): Ditto.
      (WebCore::JavaScriptDebugServer::sourceParsed): Doesn't pass the ExecState to dispatchDidParseSource
      or dispatchFailedToParseSource.
      (WebCore::JavaScriptDebugServer::dispatchFunctionToListeners): Removes all the arguments passed
      to the callback.
      (WebCore::JavaScriptDebugServer::setJavaScriptPaused): Various overloaded functions
      to pause parts of WebCore to prevent JavaScript execution while paused.
      (WebCore::JavaScriptDebugServer::pauseIfNeeded): Decides if the debugger should pause based
      on the passed in ExecState, source ID and line number. This checks for breakpoints, stepping, etc.
      Calls didPause on all the listeners and spins a EventLoop until resume is called.
      (WebCore::JavaScriptDebugServer::callEvent): Call pauseIfNeeded.
      (WebCore::JavaScriptDebugServer::atStatement): Ditto.
      (WebCore::JavaScriptDebugServer::returnEvent): Ditto.
      (WebCore::JavaScriptDebugServer::exception): Ditto.
      * page/JavaScriptDebugServer.h: Added new functions.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33404 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • timothy@apple.com's avatar
      Change View.show to call detach if the parentNode dosen't · 8906ca0d
      timothy@apple.com authored
      match before appending to the passed in parent element.
      This also prevents appending to the same parent element
      multiple times.
      Reviewed by John Sullivan.
      * page/inspector/FontView.js:
      (WebInspector.FontView.prototype.show): Pass the parent element to View.show.
      * page/inspector/ResourceView.js: Optimize the attach method to no append if
      there is a parentNode already.
      * page/inspector/SourceView.js: Ditto.
      * page/inspector/View.js: Call detach before appending if the parentNode
      doesn't match the passed in element.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33403 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • timothy@apple.com's avatar
      Optimize the panel attach method to no append if there is a · 1a750fe2
      timothy@apple.com authored
      parentNode already.
      Reviewed by Adam Roben.
      * page/inspector/Panel.js:
      (WebInspector.Panel.prototype.attach): Don't append to main-panels
      if the panel element already has a parentNode.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33402 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • timothy@apple.com's avatar
      Add Widget::isPluginView so the JavaScriptDebugServer can identify · fa486ca2
      timothy@apple.com authored
      plugins that need to be paused during debugging. This will be used
      in a upcoming commit.
      Reviewed by Kevin McCullough.
      * platform/Widget.h: Add isPluginView. Return false.
      * plugins/PluginView.h: Add isPluginView. Return true.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33401 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • timothy@apple.com's avatar
      Adds an event loop abstraction to platform. This abstraction will be · a9922b67
      timothy@apple.com authored
      used by the JavaScriptDebugServer to implement pausing.
      Reviewed by Kevin McCullough.
      * platform/EventLoop.h: Added.
      (WebCore::EventLoop::ended): Return m_ended.
      * platform/mac/EventLoopMac.mm: Added.
      (WebCore::EventLoop::cycle): Call nextEventMatchingMask and then sendEvent.
      * platform/win/EventLoopWin.cpp: Added.
      (WebCore::EventLoop::cycle): Call GetMessage, TranslateMessage and DispatchMessage.
      * WebCore.xcodeproj/project.pbxproj: Add new files.
      * WebCore.vcproj/WebCore.vcproj: Ditto.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33400 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • timothy@apple.com's avatar
      Breaks out ObjectPropertiesSection from PropertiesSidebarPane · c6e45715
      timothy@apple.com authored
      so it can be used by the Scripts panel's Scope Chain pane.
      Rubber-stamped by Adam Roben.
      * page/inspector/ObjectPropertiesSection.js: Added.
      * page/inspector/PropertiesSidebarPane.js: Moved ObjectPropertiesSection
      to ObjectPropertiesSection.js.
      * WebCore.vcproj/WebCore.vcproj: Add the new file.
      * page/inspector/WebKit.qrc: Ditto.
      * page/inspector/inspector.html: Ditto.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33399 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • timothy@apple.com's avatar
      Add a helper function to the Inspector's Array prototype · 0b65c0b6
      timothy@apple.com authored
      that will remove any identical values/objects from the array.
      Reviewed by Kevin McCullough.
      * page/inspector/utilities.js:
      (Array.prototype.remove): Iterate over the array and strict
      compare to the passed in value. If they match, splice that index
      out of the array. If onlyFirst is true, return after the first splice.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33398 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • timothy@apple.com's avatar
      Adds a JavaScriptCallFrame object and JavaScript binding with an IDL. · dec8c517
      timothy@apple.com authored
      This object will expose the stack to the Inspector's debugger.
      Reviewed by Adam Roben.
      * DerivedSources.make: Add JavaScriptCallFrame.
      * bindings/js/JSJavaScriptCallFrameCustom.cpp: Added.
      (WebCore::JSJavaScriptCallFrame::evaluate): Calls impl evaluate and returns the result.
      (WebCore::JSJavaScriptCallFrame::scopeChain): Makes an array of the ScopeChain.
      * page/JavaScriptCallFrame.cpp: Added.
      (WebCore::JavaScriptCallFrame::caller): Returns m_caller.
      (WebCore::JavaScriptCallFrame::functionName): Returns the function
      name from the ExecState if this is not global code or anonymous.
      (WebCore::JavaScriptCallFrame::evaluate): Evaluates a script string
      in the scope of the call frame.
      * page/JavaScriptCallFrame.h: Added.
      (WebCore::JavaScriptCallFrame::create): Call the ctor can return in a PassRefPtr.
      (WebCore::JavaScriptCallFrame::invalidate): Sets m_mexec to 0. This prevents a
      stale ExecState from being accessed after the lifetime of the ExecState.
      (WebCore::JavaScriptCallFrame::isValid): Checks if m_exec is 0.
      (WebCore::JavaScriptCallFrame::execState): Returns m_exec.
      (WebCore::JavaScriptCallFrame::sourceIdentifier): Returns m_sourceID.
      (WebCore::JavaScriptCallFrame::line): Returns m_line.
      (WebCore::JavaScriptCallFrame::setLine): Sets m_line.
      (WebCore::JavaScriptCallFrame::scopeChain): Returns by reference m_exec->scopeChain().
      * page/JavaScriptCallFrame.idl: Added.
      * WebCore.xcodeproj/project.pbxproj: Add new files.
      * WebCore.vcproj/WebCore.vcproj: Ditto.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33397 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • timothy@apple.com's avatar
      Add a new WebInspector.Object base class that will be used for · 9dd70d13
      timothy@apple.com authored
      a few objects in the Web Inspector to support listeners on any
      object. This will help add more abstraction to the Inspector.
      Reviewed by Adam Roben.
      * page/inspector/Object.js: Added.
      (WebInspector.Object): Does nothing.
      (WebInspector.Object.prototype.addEventListener): Adds the listener to
      the _listeners map by type. Supports a this object argument, for easy
      addition of listeners without the need for bind.
      (WebInspector.Object.prototype.removeEventListener): Remove the listener
      from the _listeners map. If the listener is null and the thisObject was
      passed, remove any listener for that thisObject.
      (WebInspector.Object.prototype.dispatchEventToListeners): Sends an event
      for a type to all listeners for that type. Mimics some of the DOMEvent
      methods and properties for the event object passed to the listeners.
      * WebCore.vcproj/WebCore.vcproj: Add new files.
      * page/inspector/WebKit.qrc: Ditto.
      * page/inspector/inspector.html: Ditto.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33396 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • timothy@apple.com's avatar
      Update the view source CSS to better match the new Inspector mock-ups. · 66b81bcb
      timothy@apple.com authored
      Reviewed by Kevin McCullough.
      * css/view-source.css:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33395 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • aroben@apple.com's avatar
      Neuter WebScriptDebugServer · a67a0078
      aroben@apple.com authored
              Some upcoming changes to JavaScriptDebugServer and
              JavaScriptDebugListener will break WebScriptDebugServer. Since Drosera
              is being replaced by the Inspector's debugger, and Drosera is the only
              client of WebScriptDebugServer, it makes more sense to get rid of
              WebScriptDebugServer than to update it to keep it working.
              We can't actually remove WebScriptDebugServer entirely yet, so I've
              just made it non-functional. This will completely break Drosera, but
              as stated above, Drosera's days are numbered anyway.
              Reviewed by Tim Hatcher and Kevin McCullough.
              * WebCoreSupport/WebFrameLoaderClient.cpp:
              (WebFrameLoaderClient::dispatchDidLoadMainResource): Removed all code
              in this function.
              * WebKitDLL.cpp:
              (LocalServerDidDie): Ditto.
              * WebScriptDebugServer.cpp: Made all IWebScriptDebugServer functions
              return E_NOTIMPL.
              * WebScriptDebugServer.h: Removed everything but the
              IWebScriptDebugServer functions.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33394 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • sullivan@apple.com's avatar
      WebCore: · a7365617
      sullivan@apple.com authored
      2008-05-13  John Sullivan  <sullivan@apple.com>
              Reviewed by Dan Bernstein and Kevin Decker
              - fixed <rdar://problem/5879597> reproducible crash in HTMLSelectElement::typeAheadFind
              Test: fast/forms/select-type-ahead-list-box-no-selection.html
              * html/HTMLSelectElement.cpp:
              When there's no initially-selected element, we were accessing index -1. Check for this
              case and start at 0.
      2008-05-13  John Sullivan  <sullivan@apple.com>
              Reviewed by Justin Garcia and Tim Hatcher
              <rdar://problem/5879597> reproducible crash in HTMLSelectElement::typeAheadFind
              * fast/forms/select-type-ahead-list-box-no-selection-expected.txt: Added.
              * fast/forms/select-type-ahead-list-box-no-selection.html: Added.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33392 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • weinig@apple.com's avatar
      2008-05-13 Sam Weinig <sam@webkit.org> · e7fdd2ce
      weinig@apple.com authored
              Reviewed by Dan Bernstein.
              Small cleanup to XMLHttpRequest in preparation for Access Control changes.
              * xml/XMLHttpRequest.cpp:
              * xml/XMLHttpRequest.h:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33391 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • kmccullough@apple.com's avatar
      2008-05-13 Kevin McCullough <kmccullough@apple.com> · ac2d1e41
      kmccullough@apple.com authored
              Giving credit where credit is due.
              * ChangeLog:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33390 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • mrowe@apple.com's avatar
      <rdar://problem/5926425> HIWebViewCreateWithClass declared as API in... · f4ce681e
      mrowe@apple.com authored
      <rdar://problem/5926425> HIWebViewCreateWithClass declared as API in HIWebView.h but never exported from WebKit.framework
      Reviewed by John Sullivan.
      * Carbon/HIWebView.h: Remove HIWebViewCreateWithClass.
      * Carbon/HIWebView.m: Ditto.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33389 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • kmccullough@apple.com's avatar
      2008-05-13 Kevin McCullough <kmccullough@apple.com> · 92542b65
      kmccullough@apple.com authored
              Reviewed by Geoff.
              <rdar://problem/5770054> JavaScript profiler (10928)
              Use PassRefPtrs instead of RefPtrs when appropriate.
              * profiler/FunctionCallProfile.cpp:
              * profiler/FunctionCallProfile.h:
              * profiler/Profile.h:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33388 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • cfleizach@apple.com's avatar
      <rdar://problem/5701210> VO: If image is missing, VoiceOver does not speak the alternative text. · ae6c4486
      cfleizach@apple.com authored
      If an image has an alt tag, it should not be ignored
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33387 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • cfleizach@apple.com's avatar
      <rdar://problem/5908446> AX: webkit needs to return blockquote information for... · 513e1a3f
      cfleizach@apple.com authored
      <rdar://problem/5908446> AX: webkit needs to return blockquote information for all AX objects, not just in AXTextMarker info
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33385 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • ap@webkit.org's avatar
      Reviewed by John Sullivan. · c6c08514
      ap@webkit.org authored
              <rdar://problem/4852077> REGRESSION: The content of the HTML file which is saved as Thai
              (ISO 8859-11) disappear.
              <rdar://problem/5842597> Thai ISO-8859-11 should be upgraded to Windows-874
              Test: fast/encoding/char-decoding.html
              * platform/text/TextCodecICU.cpp: (WebCore::TextCodecICU::registerExtendedEncodingNames):
              Register ISO-8859-11, which doesn't have a standard IANA name, despite following
              the usual 8859 naming scheme. Also, made TIS-620 map to windows-874-2000 explicitly.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33384 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • kmccullough@apple.com's avatar
      2008-05-13 Kevin McCullough <kmccullough@apple.com> · 1bed34e6
      kmccullough@apple.com authored
              Reviewed by Sam.
              <rdar://problem/5770054> JavaScript profiler (10928)
              - Made some functions static (as per Adam) and changed from using raw
              pointers to RefPtr for making these JavaScript Objects.
              * profiler/FunctionCallProfile.cpp:
              * profiler/FunctionCallProfile.h:
              * profiler/Profile.cpp:
              * profiler/Profile.h:
              * profiler/Profiler.cpp:
              * profiler/Profiler.h:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33382 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • cfleizach@apple.com's avatar
    • ap@webkit.org's avatar
      Reviewed by Eric Seidel. · a1b6f102
      ap@webkit.org authored
              <rdar://problem/5888130> WebKit should not remove BOM characters from content.
              We were only trying to match Firefox, and it doesn't do this any more.
              Tests: fast/encoding/bom-in-content.html
              * platform/text/TextDecoder.cpp: (WebCore::TextDecoder::checkForBOM): Skip the BOM if it's
              at the start of input stream.
              * platform/text/TextCodec.cpp:
              * platform/text/TextCodec.h:
              * platform/text/TextCodecICU.cpp:
              * platform/text/TextCodecUTF16.cpp:
              * platform/text/mac/TextCodecMac.cpp:
              Don't remove the BOM.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33380 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • ap@webkit.org's avatar
      Reviewed by Dan Bernstein. · d45dad02
      ap@webkit.org authored
              Add tests verifying that we don't mix up some similar, but incompatible encodings.
              * fast/encoding/char-decoding-expected.txt:
              * fast/encoding/char-decoding.html:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33379 268f45cc-cd09-0410-ab3c-d52691b4dbfc