1. 27 Jan, 2008 6 commits
    • alp@webkit.org's avatar
      2008-01-27 Jan Michael Alonzo <jmalonzo@unpluggable.com> · cae55674
      alp@webkit.org authored
              Reviewed by Alp Toker.
              [gtk] [request] add a webkit_gtk_page_go_to_history_item function
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29821 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • darin@apple.com's avatar
      * http/tests/security/cross-frame-access-put-expected.txt: Updated again. · 6ff1bcb5
      darin@apple.com authored
              Not sure why, but I generated a different result the first time I tried.
              I suspect this test gives different results depending on what other tests
              are run with it.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29820 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • darin@apple.com's avatar
      - updated some test results I missed that were affected by my fix for bug 16498 · 364aeedd
      darin@apple.com authored
              * fast/dom/xmlhttprequest-get-expected.txt:
              * http/tests/security/cross-frame-access-put-expected.txt:
              * plugins/inner-html-display-none-expected.txt:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29819 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • darin@apple.com's avatar
      JavaScriptCore: · 1076ac2a
      darin@apple.com authored
              Reviewed by Oliver.
              - fix <rdar://problem/5657450> REGRESSION: const is broken
              Test: fast/js/const.html
              SunSpider said this was 0.3% slower. And I saw some Shark samples in
              JSGlobalObject::put -- not a lot but a few. We may be able to regain the
              speed, but for now we will take that small hit for correctness sake.
              * kjs/JSGlobalObject.cpp:
              (KJS::JSGlobalObject::put): Pass the checkReadOnly flag in to symbolTablePut
              instead of passing attributes.
              * kjs/JSVariableObject.h:
              (KJS::JSVariableObject::symbolTablePut): Removed the code to set attributes
              here, since we only set attributes when creating a property. Added the code
              to check read-only here, since we need that to implement const!
              * kjs/function.cpp:
              (KJS::ActivationImp::put): Pass the checkReadOnly flag in to symbolTablePut
              instead of passing attributes.
              * kjs/nodes.cpp:
              (KJS::isConstant): Added.
              (KJS::PostIncResolveNode::optimizeVariableAccess): Create a PostIncConstNode
              if optimizing for a local variable and the variable is constant.
              (KJS::PostDecResolveNode::optimizeVariableAccess): Ditto. But PostDecConstNode.
              (KJS::PreIncResolveNode::optimizeVariableAccess): Ditto. But PreIncConstNode.
              (KJS::PreDecResolveNode::optimizeVariableAccess): Ditto. But PreDecConstNode.
              (KJS::PreIncConstNode::evaluate): Return the value + 1.
              (KJS::PreDecConstNode::evaluate): Return the value - 1.
              (KJS::PostIncConstNode::evaluate): Return the value converted to a number.
              (KJS::PostDecConstNode::evaluate): Ditto.
              (KJS::ReadModifyResolveNode::optimizeVariableAccess): Create a ReadModifyConstNode
              if optimizing for a local variable and the variable is constant.
              (KJS::AssignResolveNode::optimizeVariableAccess): Ditto. But AssignConstNode.
              (KJS::ScopeNode::optimizeVariableAccess): Pass the local storage to the
              node optimizeVariableAccess functions, since that's where we need to look to
              figure out if a variable is constant.
              (KJS::FunctionBodyNode::processDeclarations): Moved the call to
              optimizeVariableAccess until after localStorage is set up.
              (KJS::ProgramNode::processDeclarations): Ditto.
              * kjs/nodes.h: Fixed the IsConstant and HasInitializer values. They are used
              as flag masks, so a value of 0 will not work for IsConstant. Changed the
              first parameter to optimizeVariableAccess to be a const reference to a symbol
              table and added a const reference to local storage. Added classes for const
              versions of local variable access: PostIncConstNode, PostDecConstNode,
              PreIncConstNode, PreDecConstNode, ReadModifyConstNode, and AssignConstNode.
              * kjs/object.cpp:
              (KJS::JSObject::put): Tweaked comments a bit, and changed the checkReadOnly
              expression to match the form used at the two other call sites.
              Reviewed by Oliver.
              - tests for <rdar://problem/5657450> REGRESSION: const is broken
              * fast/js/const-expected.txt: Updated with results that express success
              rather than failure, and to include the many new tests I added.
              * fast/js/kde/const-expected.txt: Ditto.
              * fast/js/resources/const.js: Added many new tests, covering the various
              cases of const in globals, function locals, the slow case inside eval,
              the different node types, and the values of the expressions.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29818 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • darin@apple.com's avatar
      JavaScriptCore: · a313eada
      darin@apple.com authored
              Reviewed by Oliver.
              - fix http://bugs.webkit.org/show_bug.cgi?id=16498
                ''.constructor.toString() gives [function]
              Test: fast/js/function-names.html
              * kjs/array_object.cpp:
              (KJS::ArrayObjectImp::ArrayObjectImp): Use the class name as the constructor's function name.
              * kjs/bool_object.cpp:
              (KJS::BooleanObjectImp::BooleanObjectImp): Ditto.
              * kjs/date_object.cpp:
              (KJS::DateObjectImp::DateObjectImp): Ditto.
              * kjs/error_object.cpp:
              (KJS::ErrorPrototype::ErrorPrototype): Make the error object be an Error.
              (KJS::ErrorObjectImp::ErrorObjectImp): Use the class name as the constructor's function name.
              (KJS::NativeErrorPrototype::NativeErrorPrototype): Take const UString&.
              (KJS::NativeErrorImp::NativeErrorImp): Use the prototype's name as the constructor's function
              * kjs/error_object.h: Change ErrorPrototype to inherit from ErrorInstance. Change the
              NativeErrorImp constructor to take a NativeErrorPrototype pointer for its prototype.
              * kjs/function.h: Removed unneeded constructor for internal functions without names.
              We want to avoid those!
              * kjs/function_object.cpp:
              (KJS::functionProtoFuncToString): Removed code that writes out just [function] for functions
              that have no names. There's no reason to do that.
              (KJS::FunctionObjectImp::FunctionObjectImp): Use the class name as the constructor's
              function name.
              * kjs/internal.cpp: Removed the unused constructor.
              * kjs/number_object.cpp:
              (KJS::fractionalPartToString): Marked static for internal linkage.
              (KJS::exponentialPartToString): Ditto.
              (KJS::numberProtoFuncToPrecision): Removed an unneeded else.
              (KJS::NumberObjectImp::NumberObjectImp): Use the class name as the constructor's
              function name.
              (KJS::NumberObjectImp::getValueProperty): Tweaked formatting.
              * kjs/object_object.cpp:
              (KJS::ObjectObjectImp::ObjectObjectImp): Use "Object" for the function name.
              * kjs/regexp_object.cpp:
              (KJS::RegExpObjectImp::RegExpObjectImp): Use "RegExp" for the function name.
              * kjs/string_object.cpp:
              (KJS::StringObjectImp::StringObjectImp): Use the class name as the constructor's
              function name.
              Reviewed by Oliver.
              - test for http://bugs.webkit.org/show_bug.cgi?id=16498
                ''.constructor.toString() gives [function]
              * fast/js/function-names-expected.txt: Updated for new tests.
              * fast/js/kde/resources/function.js: Updated test to expect the format that Gecko uses
              for native code, which we now match character for character.
              * fast/js/resources/function-names.js: Added tests for the names of all the constructors.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29817 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • darin@apple.com's avatar
      WebCore: · 579d1234
      darin@apple.com authored
              Reviewed and tweaked quite a bit by Darin.
              Fix for http://bugs.webkit.org/show_bug.cgi?id=14959
              No back forward entry added for pages created in javascript
              A new HistoryItem is created for calls to Document::open. Calls to
              Document::write save the written data to a SharedBuffer that is also
              stored on the HistoryItem. When the user navigates back to a
              HistoryItem that has a valid buffer, that data is used for the page
              Tests: http/tests/navigation/document-open-adds-history-item.html
              * bindings/js/JSHTMLDocumentCustom.cpp:
              (WebCore::JSHTMLDocument::open): Pass a MIME type of either "text/html" or
              "text/plain" and a boolean for "replace" in rather than always setting replace
              to true and the MIME type to "text/html".
              * dom/DOMImplementation.cpp:
              (WebCore::DOMImplementation::createHTMLDocument): Pass in MIME type and
              replace boolean explicitly, since we don't want to rely on Document::open()'s
              * dom/Document.cpp:
              (WebCore::Document::open): Correctly determine the "replace" boolean.
              Pass along the MIME type, replace boolean, and shared buffer to the
              frame loader's didExplicitOpen function.
              (WebCore::Document::write): Pass MIME type and replace boolean explicitly
              to the open function so we don't do treat it as replace if you write without
              an open. Store text written by the script so it can be used later for history.
              (WebCore::Document::clear): Drop the text written byt he script.
              * dom/Document.h: Added MIME type and replace boolean parameters for open.
              Had to keep the old version for the sake of DOM bindings. Added the shared
              buffer used for text written by script.
              * history/HistoryItem.cpp:
              (WebCore::HistoryItem::HistoryItem): Copy m_substituteData.
              (WebCore::HistoryItem::substituteData): Added.
              (WebCore::HistoryItem::setSubstituteData): Added.
              * history/HistoryItem.h: Added m_substituteData, getter, and setter.
              * loader/FrameLoader.cpp:
              (WebCore::FrameLoader::didExplicitOpen): Added code to create or update the
              history item, including attaching the shared buffer that will contain all
              the data written by script.
              (WebCore::FrameLoader::load): Added a SubstituteData parameter, passed through
              when creating the document loader.
              (WebCore::FrameLoader::reloadAllowingStaleData): Create the document loader
              with the substitute data from the current history item.
              (WebCore::FrameLoader::reload): Ditto.
              (WebCore::FrameLoader::shouldTreatURLAsSameAsCurrent): If the current history
              item has substitute data, then consider the URL from the substitute data
              rather than the one in the history item itself.
              (WebCore::FrameLoader::loadItem): Pass in the history item's substitute data.
              * loader/FrameLoader.h: Added parameters to load and didExplicitOpen.
              * platform/text/CharacterNames.h: Added byteOrderMark, and also added it under
              its other official name, zeroWidthNoBreakSpace.
              * xml/DOMParser.cpp:
              (WebCore::DOMParser::parseFromString): Pass in MIME type and replace boolean
              explicitly, since we don't want to rely on Document::open()'s default.
              * xml/XMLHttpRequest.cpp:
              (WebCore::XMLHttpRequest::getResponseXML): Ditto.
              * xml/XSLTProcessor.cpp:
              (WebCore::XSLTProcessor::createDocumentFromSource): Ditto.
              Reviewed by Darin.
              Test cases for fix to http://bugs.webkit.org/show_bug.cgi?id=14959
              No back forward entry added for pages created in javascript.
              * http/tests/navigation/document-open-adds-history-item-expected.txt: Added.
              * http/tests/navigation/document-open-adds-history-item.html: Added.
              * http/tests/navigation/document-open-delayed-adds-history-item-expected.txt: Added.
              * http/tests/navigation/document-open-delayed-adds-history-item.html: Added.
              * http/tests/navigation/document-open-new-window-adds-history-item-expected.txt: Added.
              * http/tests/navigation/document-open-new-window-adds-history-item.html: Added.
              * http/tests/navigation/document-open-replace-no-history-item-expected.txt: Added.
              * http/tests/navigation/document-open-replace-no-history-item.html: Added.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29816 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  2. 26 Jan, 2008 14 commits
    • darin@apple.com's avatar
      JavaScriptCore: · 5b82a72e
      darin@apple.com authored
              Reviewed by Oliver.
              - fix http://bugs.webkit.org/show_bug.cgi?id=17027
                Incorrect Function.toString behaviour with read/modify/write operators performed on negative numbers
              Test: fast/js/function-toString-parentheses.html
              The problem here was that a NumberNode with a negative number in it had the wrong
              precedence. It's not a primary expression, it's a unary operator with a primary
              expression after it.
              Once the precedence of NumberNode was fixed, the cases from bug 17020 were also
              fixed without trying to treat bracket nodes like dot nodes. That wasn't needed.
              The reason we handle numbers before dot nodes specially is that the dot is a
              legal character in a number. The same is not true of a bracket. Eventually we
              could get smarter, and only add the parentheses when there is actual ambiguity.
              There is none if the string form of the number already has a dot in it, or if
              it's a number with a alphabetic name like infinity or NAN.
              * kjs/nodes.h: Renamed back from ObjectAccess to DotExpr.
              (KJS::NumberNode::precedence): Return PrecUnary for negative numbers, since
              they serialize as a unary operator, not a primary expression.
              * kjs/nodes2string.cpp:
              (KJS::SourceStream::operator<<): Clear m_numberNeedsParens if this adds
              parens; one set is enough.
              (KJS::bracketNodeStreamTo): Remove unneeded special flag here. Normal
              operator precedence suffices.
              (KJS::NewExprNode::streamTo): Ditto.
              Reviewed by Oliver.
              - test for http://bugs.webkit.org/show_bug.cgi?id=17027
                Incorrect Function.toString behaviour with read/modify/write operators performed on negative numbers
              * fast/js/function-toString-parentheses-expected.txt: Updated.
              * fast/js/resources/function-toString-parentheses.js: More test cases.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29815 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • mrowe@apple.com's avatar
      Fix leaks seen after loading <http://www.funnyordie.com/videos/d70b5a11cb>. · 1982d3cd
      mrowe@apple.com authored
      Reviewed by Darin Adler.
      * Misc/WebNSDataExtras.m:
      (-[NSString _web_capitalizeRFC822HeaderFieldName]): Transfer ownerhip of the allocated buffers
      to the new CFString so that they will be freed when no longer needed.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29814 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • oliver@apple.com's avatar
      Fix for http://bugs.webkit.org/show_bug.cgi?id=17020 · 9e518102
      oliver@apple.com authored
      Function.toString does not parenthesise numbers for the bracket accessor
      Reviewed by Maciej and Darin.
      It turns out that logic was there for all of the dot accessor nodes to make numbers be
      parenthesised properly, so it was a trivial extension to extend that to the bracket nodes.
      I renamed the enum type to reflect the fact that it is now used for both dot and bracket
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29813 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • oliver@apple.com's avatar
      Fix Bug 17018: Incorrect code generated from Function.toString for get/setters in object literals · 20f9be94
      oliver@apple.com authored
      Reviewed by Darin.
      Don't quote getter and setter names during output, as that is simply wrong.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29812 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • ddkilzer@apple.com's avatar
      WebKit: · e65bc9ac
      ddkilzer@apple.com authored
              <rdar://problem/5708388> WebDashboardRegion.h duplicated between WebCore / WebKit
              Reviewed by Darin.
              * WebKit.xcodeproj/project.pbxproj: Removed WebDashboardRegion.h.
              <rdar://problem/5708388> WebDashboardRegion.h duplicated between WebCore / WebKit
              Reviewed by Darin.
              * WebCoreSupport/WebDashboardRegion.h: Removed.
              * WebView/WebView.mm: Updated #import to use copy of WebDashboardRegion.h from WebCore.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29811 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • darin@apple.com's avatar
      Reviewed by Eric Seidel. · 41343c34
      darin@apple.com authored
              - http://bugs.webkit.org/show_bug.cgi?id=16860
                a bit of cleanup after the Activation optimization
              * JavaScriptCore.exp: Export the GlobalExecState constructor instead of
              the global flavor of the ExecState constructor. It'd probably be cleaner
              to not export either one, but JSGlobalObject inlines the code that
              constructs the ExecState. If we changed that, we could remove this export.
              * JavaScriptCore.xcodeproj/project.pbxproj: Re-sorted a few things and
              put the new source files into the kjs group rather than at the top level.
              * kjs/ExecState.cpp:
              (KJS::ExecState::ExecState): Marked inline and updated for data member
              name changes. This is now only for use for the derived classes. Also removed
              code that sets the unused m_savedExec data member for the global case. That
              data member is only used for the other two types.
              (KJS::ExecState::~ExecState): Marked inline and removed all the code.
              The derived class destructors now inclde the appropriate code.
              (KJS::ExecState::lexicalGlobalObject): Removed unneeded special case for
              an empty scope chain. The bottom function already returns 0 for that case,
              so the general case code handles it fine. Also changed to use data members
              directly rather than calling functions.
              (KJS::GlobalExecState::GlobalExecState): Added. Calls through to the base
              class constructor.
              (KJS::GlobalExecState::~GlobalExecState): Added.
              (KJS::InterpreterExecState::InterpreterExecState): Added. Moved code to
              manipulate activeExecStates here since we don't want to have to check for the
              special case of globalExec.
              (KJS::InterpreterExecState::~InterpreterExecState): Added.
              (KJS::EvalExecState::EvalExecState): Added.
              (KJS::EvalExecState::~EvalExecState): Added.
              (KJS::FunctionExecState::FunctionExecState): Added.
              (KJS::FunctionExecState::~FunctionExecState): Added.
              * kjs/ExecState.h: Tweaked the header, includes, and declarations a bit.
              Made ExecState inherit from Noncopyable. Reformatted some comments and
              made them a bit more brief. Rearranged declarations a little bit and removed
              unused savedExec function. Changed seenLabels function to return a reference
              rather than a pointer. Made constructors and destructor protected, and also
              did the same with all data members. Renamed m_thisVal to m_thisValue and
              ls to m_labelStack. Added three new derived classes for each of the
              types of ExecState. The primary goal here was to remove a branch from the
              code in the destructor, but it's also clearer than overloading the arguments
              to the ExecState constructor.
              * kjs/JSGlobalObject.cpp:
              (KJS::getCurrentTime): Fixed formatting.
              (KJS::JSGlobalObject::pushActivation): Removed parentheses that don't make
              the expression clearer -- other similar sites didn't have these parentheses,
              even the one a couple lines earlier that sets stackEntry.
              (KJS::JSGlobalObject::tearOffActivation): Got rid of unneeded static_cast
              (I think I mentioned this during patch review) and used an early exit so that
              the entire contents of the function aren't nested inside an if statement.
              Also removed the check of codeType, instead checking Activation for 0.
              For now, I kept the codeType check, but inside an assertion.
              * kjs/JSGlobalObject.h: Changed type of globalExec to GlobalExecState.
              * kjs/function.cpp:
              (KJS::FunctionImp::callAsFunction): Changed type to FunctionExecState.
              (KJS::GlobalFuncImp::callAsFunction): Changed type to EvalExecState.
              * kjs/interpreter.cpp:
              (KJS::Interpreter::evaluate): Changed type to GlobalExecState.
              * kjs/nodes.cpp:
              (KJS::ContinueNode::execute): Changed code since seenLabels() returns a
              reference now instead of a pointer.
              (KJS::BreakNode::execute): Ditto.
              (KJS::LabelNode::execute): Ditto.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29810 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • weinig@apple.com's avatar
      Reviewed by Mark Rowe. · 6fa6490f
      weinig@apple.com authored
              Cleanup node2string a little.
              - Remove some unnecessary branching.
              - Factor out bracket and dot streaming into static inline functions.
              * kjs/nodes.h:
              * kjs/nodes2string.cpp:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29809 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • sfalken@apple.com's avatar
      <rdar://problem/5707607> REGRESSION: I hear a beep when selecting... · c4843970
      sfalken@apple.com authored
              <rdar://problem/5707607> REGRESSION: I hear a beep when selecting Alt-enter in address or search fields
              Reviewed by Oliver.
              * WebView.cpp:
              (WebView::keyDown): Allow alt-return to be marked as handled by WebKit.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29808 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • mrowe@apple.com's avatar
      Fix http://bugs.webkit.org/show_bug.cgi?id=17007 ([GTK] autogen.sh attempts to... · 2bc789fb
      mrowe@apple.com authored
      Fix http://bugs.webkit.org/show_bug.cgi?id=17007 ([GTK] autogen.sh attempts to use "libtoolize" on the Mac).
      Reviewed by Alp Toker.
      libtoolize is installed as glibtoolize on Mac OS X to avoid naming conflicts
      with other system commands.  Check for the presence of glibtoolize if libtoolize
      cannot be found.
      * autogen.sh:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29807 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • mrowe@apple.com's avatar
      Fix http://bugs.webkit.org/show_bug.cgi?id=17001 (Build error with Gtk port on Mac OS X). · 59e7c54d
      mrowe@apple.com authored
      Reviewed by Darin Adler.
      If both XP_MACOSX and XP_UNIX are defined then X11.h and Carbon.h will both be included.
      These provide conflicting definitions for a type named 'Cursor'.  As XP_UNIX is set by
      the build system when targeting X11, it doesn't make sense for XP_MACOSX to also be set
      in this instance.
      * bindings/npapi.h: Don't define XP_MACOSX if XP_UNIX is defined.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29806 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • eric@webkit.org's avatar
      Reviewed by Sam and Darin. · c79eaef4
      eric@webkit.org authored
              Fire a warning shot in DeprecatedChar's direction.
              Remove DeprecatedChar::isSpace() usage, in preparation for removing DeprecatedChar
              Remove a needless String -> DeprecatedString -> String conversion for <script> tags
              * css/MediaQueryEvaluator.cpp:
              * css/SVGCSSParser.cpp:
              * dom/Position.cpp:
              * editing/TextIterator.cpp:
              * html/HTMLFontElement.cpp:
              * html/HTMLTokenizer.cpp:
              * html/HTMLTokenizer.h:
              * loader/CachedCSSStyleSheet.cpp:
              * loader/TextResourceDecoder.cpp:
              * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
              * platform/mac/ClipboardMac.mm:
              * platform/network/HTTPParsers.cpp:
              * platform/text/PlatformString.h:
              * platform/text/StringImpl.cpp:
              * platform/text/StringImpl.h:
              * rendering/InlineFlowBox.cpp:
              * rendering/RenderBlock.cpp:
              * rendering/bidi.cpp:
              * svg/SVGFontFaceElement.cpp:
              * svg/SVGLength.cpp:
              * svg/SVGStyledElement.cpp:
              * xml/XPathParser.cpp:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29805 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • darin@apple.com's avatar
      JavaScriptCore: · 29d6711a
      darin@apple.com authored
              Reviewed by Oliver.
              - fix http://bugs.webkit.org/show_bug.cgi?id=17013
                JSC can't round trip certain for-loops
              Test: fast/js/toString-for-var-decl.html
              * kjs/nodes.h: Added PlaceholderTrueNode so we can put nodes into
              for loops without injecting the word "true" into them (nice, but not
              the bug fix). Fixed ForNode constructor so expr1WasVarDecl is set
              only when there is an expression, since it's common for the actual
              variable declaration to be moved by the parser.
              * kjs/nodes2string.cpp:
              (KJS::PlaceholderTrueNode::streamTo): Added. Empty.
              Reviewed by Oliver.
              - test for http://bugs.webkit.org/show_bug.cgi?id=17013
                JSC can't round trip certain for-loops
              * fast/js/resources/toString-for-var-decl.js: Streamlined the test a bit, with more
              of the execution within shouldBe so that exceptions are caught for us. Added a new
              test case reflecting the just-fixed bug.
              * fast/js/toString-for-var-decl-expected.txt: Updated.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29804 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • oliver@apple.com's avatar
      Fix typo in changelog · dd97e206
      oliver@apple.com authored
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29803 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • oliver@apple.com's avatar
      Fix for bug 17012: REGRESSION: JSC can't round trip an object literal · 3bc5f6ee
      oliver@apple.com authored
      Reviewed by Maciej.
      Add logic to ensure that object literals and function expressions get
      parenthesis when necessary.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29802 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  3. 25 Jan, 2008 12 commits
    • slewis@apple.com's avatar
      fix changelog · 688be0ac
      slewis@apple.com authored
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29801 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • slewis@apple.com's avatar
      2008-01-25 U-SLEWIS-WIN\Stephanie <slewis@apple.com> · e446b156
      slewis@apple.com authored
               Reviewed by Tim.
               expand workaround for <rdar://5695848> to include js files so that the
               web inspector can work
               * platform/network/cf/ResourceResponseCFNet.cpp:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29800 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • antti@apple.com's avatar
      Reviewed by Adele. · 9b24ce2c
      antti@apple.com authored
              (this is for r29798, my commit failed to include the log)
              Windows fix to match r29773
              If the media is playing and the load stalls the playback wont restart by seeking backwards.      
              * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29799 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • antti@apple.com's avatar
      Reviewed by Adele. · 426e9aa5
      antti@apple.com authored
              Windows fix to match r29773
              If the media is playing and the load stalls the playback wont restart by seeking backwards.      
              * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29798 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • darin@apple.com's avatar
      WebCore: · f5409f08
      darin@apple.com authored
              Reviewed by Anders.
              - fix <rdar://problem/5691072> ASSERTION FAILED: isPrepared() when executing an empty statement
              For empty statements, SQLite returns 0 for the statement. We have to cope with that.
              Test: storage/empty-statement.html
              * platform/sql/SQLiteStatement.cpp:
              (WebCore::sqlite3_prepare16_v2): Added overload so we don't need an #if inside the prepare
              (WebCore::SQLiteStatement::SQLiteStatement): Initialize the m_isPrepared boolean. Removed
              the code to add a null character to the end of the string; instead we will use
              (WebCore::SQLiteStatement::prepare): Set m_isPrepared based on the error value returned.
              Use the error value from sqlite3_prepare16_v2, not from lastError().
              (WebCore::SQLiteStatement::step): Assert that the statement is prepared rather than checking
              it at runtime. However, in the case where this is called with m_statement of 0, return
              success rather than an error. That's needed for empty statements.
              (WebCore::SQLiteStatement::finalize): Use early return idiom for clarity. When there is no
              statement, return SQLITE_OK instead of calling lastError().
              (WebCore::SQLiteStatement::reset): Use early return idiom for clarity. When there is no
              statement, return SQLITE_OK rather than SQLITE_ERROR, but assert the statement is prepared.
              (WebCore::SQLiteStatement::executeCommand): Adjust the code that does a prepare so that it
              will work for empty statements. Do we really need to allow calling this without prepare?
              It would be simpler to just be able to assert that it's prepared.
              (WebCore::SQLiteStatement::returnsAtLeastOneResult): Ditto.
              (WebCore::SQLiteStatement::bindBlob): Added some assertions. Return SQLITE_ERROR if this
              is called with m_statement of 0 (should not be possible without assertions firing first).
              Return the actual error code rather than lastError().
              (WebCore::SQLiteStatement::bindText): Ditto. Also simplified the special case for empty
              strings, since it requires any non-null pointer, not a pointer to a global zero character.
              (WebCore::SQLiteStatement::bindInt64): Ditto.
              (WebCore::SQLiteStatement::bindDouble): Ditto.
              (WebCore::SQLiteStatement::bindNull): Ditto.
              (WebCore::SQLiteStatement::bindValue): Moved default case out of the switch to take
              advantage of the gcc compiler warning for unhandled enum values in a switch.
              (WebCore::SQLiteStatement::bindParameterCount): Added assertion and code to handle the
              empty statement case.
              (WebCore::SQLiteStatement::columnCount): Added assertion and changed the code to use
              the early-return idiom.
              (WebCore::SQLiteStatement::getColumnName): Removed getColumnName16 -- we always use 16-bit
              characters and have no reason to ever use the 8-bit function. Added assertions about the
              passed-in column number. It's a little strange that this function checks the column number
              for too-large column numbers, but not for negative ones. I didn't change that for now.
              (WebCore::SQLiteStatement::getColumnText): Ditto.
              (WebCore::SQLiteStatement::getColumnDouble): Ditto.
              (WebCore::SQLiteStatement::getColumnInt): Ditto.
              (WebCore::SQLiteStatement::getColumnInt64): Ditto.
              (WebCore::SQLiteStatement::getColumnBlobAsVector): Ditto.
              (WebCore::SQLiteStatement::getColumnBlob): Tightened up function a bit, including use of
              the early-return idiom and replacing the multiple "size = 0" with a single one at the
              start of the function.
              (WebCore::SQLiteStatement::returnTextResults): Added a failure case when the prepare
              call doesn't work. Cleared the vector earlier to make the failure code simpler. Moved
              the declaration of the result boolean down lower to make it clearer what it's for.
              Changed use of lastError() to call on the database, to make it clearer that there's
              no per-statement last error kept around. It'd be even better to not use lastError() here.
              (WebCore::SQLiteStatement::returnIntResults): Ditto.
              (WebCore::SQLiteStatement::returnInt64Results): Ditto.
              (WebCore::SQLiteStatement::returnDoubleResults): Ditto.
              (WebCore::SQLiteStatement::isExpired): Changed to use || rather than ?: because I think
              it's slightly easier to read that way.
              * platform/sql/SQLiteStatement.h: Removed unneeded includes and forward declarations.
              Also removed unnneeded functions isPrepared, getColumnName16, getColumnText16,
              returnTextResults16, lastError, and lastErrorMsg. Changed prepareAndStep so that it
              checks the result of prepare before callling step. Added a debug-only m_isPrepared boolean.
              * loader/icon/IconDatabase.cpp:
              (WebCore::IconDatabase::checkIntegrity): Remove 16 suffix from text-related function names.
              (WebCore::IconDatabase::performURLImport): Ditto.
              (WebCore::IconDatabase::pruneUnretainedIcons): Ditto.
              * platform/sql/SQLiteDatabase.cpp:
              (WebCore::SQLiteDatabase::clearAllTables): Ditto.
              * storage/Database.cpp:
              (WebCore::retrieveTextResultFromDatabase): Ditto.
              (WebCore::Database::performGetTableNames): Ditto.
              * storage/DatabaseTracker.cpp:
              (WebCore::DatabaseTracker::fullPathForDatabase): Ditto.
              (WebCore::DatabaseTracker::populateOrigins): Ditto.
              (WebCore::DatabaseTracker::databaseNamesForOrigin): Ditto.
              (WebCore::DatabaseTracker::addDatabase): Ditto.
              * storage/SQLStatement.cpp:
              (WebCore::SQLStatement::execute): Ditto.
              * platform/sql/SQLiteDatabase.h: Removed unneeded includes.
              * storage/SQLResultSet.h: Ditto.
              * storage/SQLResultSetRowList.h: Ditto.
              Reviewed by Anders.
              - test for <rdar://problem/5691072> ASSERTION FAILED: isPrepared() when executing an empty statement
              * storage/empty-statement-expected.txt: Added.
              * storage/empty-statement.html: Added.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29797 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • antti@apple.com's avatar
      Reviewed by Darin. · 85814089
      antti@apple.com authored
              Fix <rdar://problem/5674282>
              Some media tests fail on Windows
              - fix the script to exit cleanly
              - slightly increase the amount of data to hand out before stalling, apparently
                QT on Windows needs more to start playback
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29796 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • adele@apple.com's avatar
      WebCore: · c25b7d8b
      adele@apple.com authored
              Reviewed by Sam.
              Fix for <rdar://problem/5679452> Finish tweaking layout/alignment of media controls slider to match QuickTime plug-in
              * css/html4.css: Add horizontal padding to the media slider.
              * rendering/RenderSlider.cpp:
              (WebCore::HTMLSliderThumbElement::defaultEventHandler): Replace use of absoluteBoundingBox() with width() and height()
              (WebCore::RenderSlider::positionForOffset): ditto. Also, use the trackSize() for the maximum offset.
              (WebCore::RenderSlider::layout):  Use contentWidth() and contentHeight() to take padding into account.
              (WebCore::RenderSlider::trackSize): ditto.
              Reviewed by Sam.
              Adding new test and updated results for:
              <rdar://problem/5679452> Finish tweaking layout/alignment of media controls slider to match QuickTime plug-in
              * fast/forms/slider-padding.html: Added.
              * platform/mac/fast/forms/slider-padding-expected.checksum: Added.
              * platform/mac/fast/forms/slider-padding-expected.png: Added.
              * platform/mac/fast/forms/slider-padding-expected.txt: Added.
              * platform/mac/media/audio-controls-rendering-expected.checksum:
              * platform/mac/media/audio-controls-rendering-expected.png:
              * platform/mac/media/audio-controls-rendering-expected.txt:
              * platform/mac/media/broken-video-expected.checksum:
              * platform/mac/media/broken-video-expected.png:
              * platform/mac/media/progress-event-expected.checksum:
              * platform/mac/media/progress-event-expected.png:
              * platform/mac/media/unsupported-rtsp-expected.checksum:
              * platform/mac/media/unsupported-rtsp-expected.png:
              * platform/mac/media/unsupported-tracks-expected.checksum:
              * platform/mac/media/unsupported-tracks-expected.png:
              * platform/mac/media/video-append-source-expected.checksum:
              * platform/mac/media/video-append-source-expected.png:
              * platform/mac/media/video-autoplay-expected.checksum:
              * platform/mac/media/video-autoplay-expected.png:
              * platform/mac/media/video-buffered-expected.checksum:
              * platform/mac/media/video-buffered-expected.png:
              * platform/mac/media/video-controls-expected.checksum:
              * platform/mac/media/video-controls-expected.png:
              * platform/mac/media/video-controls-rendering-expected.checksum:
              * platform/mac/media/video-controls-rendering-expected.png:
              * platform/mac/media/video-controls-rendering-expected.txt:
              * platform/mac/media/video-currentTime-set2-expected.checksum:
              * platform/mac/media/video-currentTime-set2-expected.png:
              * platform/mac/media/video-display-toggle-expected.checksum:
              * platform/mac/media/video-display-toggle-expected.png:
              * platform/mac/media/video-display-toggle-expected.txt:
              * platform/mac/media/video-dom-autoplay-expected.checksum:
              * platform/mac/media/video-dom-autoplay-expected.png:
              * platform/mac/media/video-dom-src-expected.checksum:
              * platform/mac/media/video-dom-src-expected.png:
              * platform/mac/media/video-dom-start-expected.checksum:
              * platform/mac/media/video-dom-start-expected.png:
              * platform/mac/media/video-error-abort-expected.checksum:
              * platform/mac/media/video-error-abort-expected.png:
              * platform/mac/media/video-error-does-not-exist-expected.checksum:
              * platform/mac/media/video-error-does-not-exist-expected.png:
              * platform/mac/media/video-load-networkState-expected.checksum:
              * platform/mac/media/video-load-networkState-expected.png:
              * platform/mac/media/video-load-readyState-expected.checksum:
              * platform/mac/media/video-load-readyState-expected.png:
              * platform/mac/media/video-muted-expected.checksum:
              * platform/mac/media/video-muted-expected.png:
              * platform/mac/media/video-no-autoplay-expected.checksum:
              * platform/mac/media/video-no-autoplay-expected.png:
              * platform/mac/media/video-pause-empty-events-expected.checksum:
              * platform/mac/media/video-pause-empty-events-expected.png:
              * platform/mac/media/video-play-empty-events-expected.checksum:
              * platform/mac/media/video-play-empty-events-expected.png:
              * platform/mac/media/video-play-pause-events-expected.checksum:
              * platform/mac/media/video-play-pause-events-expected.png:
              * platform/mac/media/video-play-pause-exception-expected.checksum:
              * platform/mac/media/video-play-pause-exception-expected.png:
              * platform/mac/media/video-seek-past-end-paused-expected.checksum:
              * platform/mac/media/video-seek-past-end-paused-expected.png:
              * platform/mac/media/video-seek-past-end-playing-expected.checksum:
              * platform/mac/media/video-seek-past-end-playing-expected.png:
              * platform/mac/media/video-seekable-expected.checksum:
              * platform/mac/media/video-seekable-expected.png:
              * platform/mac/media/video-seeking-expected.checksum:
              * platform/mac/media/video-seeking-expected.png:
              * platform/mac/media/video-size-expected.checksum:
              * platform/mac/media/video-size-expected.png:
              * platform/mac/media/video-source-expected.checksum:
              * platform/mac/media/video-source-expected.png:
              * platform/mac/media/video-source-media-expected.checksum:
              * platform/mac/media/video-source-media-expected.png:
              * platform/mac/media/video-source-type-expected.checksum:
              * platform/mac/media/video-source-type-expected.png:
              * platform/mac/media/video-src-change-expected.checksum:
              * platform/mac/media/video-src-change-expected.png:
              * platform/mac/media/video-src-expected.checksum:
              * platform/mac/media/video-src-expected.png:
              * platform/mac/media/video-src-remove-expected.checksum:
              * platform/mac/media/video-src-remove-expected.png:
              * platform/mac/media/video-src-set-expected.checksum:
              * platform/mac/media/video-src-set-expected.png:
              * platform/mac/media/video-src-source-expected.checksum:
              * platform/mac/media/video-src-source-expected.png:
              * platform/mac/media/video-start-expected.checksum:
              * platform/mac/media/video-start-expected.png:
              * platform/mac/media/video-volume-expected.checksum:
              * platform/mac/media/video-volume-expected.png:
              * platform/mac/media/video-width-height-expected.checksum:
              * platform/mac/media/video-width-height-expected.png:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29795 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • antti@apple.com's avatar
      <rdar://problem/5674277> · a490c5c1
      antti@apple.com authored
              Test media/video-display-toggle.html crashes on Windows
              Appears to be some problem in DRT when test ends with layout pending.
              Fixed by forcing layout, this improves test coverage too.
              * media/video-display-toggle.html:
              * platform/win/Skipped:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29794 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • alp@webkit.org's avatar
      2008-01-25 Ori Bernstein <ori@eigenstate.org> · de7edcee
      alp@webkit.org authored
              Reviewed by Alp Toker.
              WebKitGtk crashes when there is no focused Frame
              Add a null check. focusedFrame() isn't used directly anywhere else so
              this is the only case that needs to be fixed.
              * WebView/webkitwebview.cpp:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29793 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • ap@webkit.org's avatar
      <rdar://problem/5706788>... · 3bb905fb
      ap@webkit.org authored
              <rdar://problem/5706788> http/tests/security/cross-frame-access-port-explicit-domain.html fails on Windows
              * platform/win/Skipped:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29792 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • ap@webkit.org's avatar
      http/tests/xmlhttprequest/readystatechange.html fails on buildbot. · ccabb89d
      ap@webkit.org authored
              * platform/win/Skipped:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29791 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • ap@webkit.org's avatar
      Reviewed by Mark Rowe. · 13fb1fa4
      ap@webkit.org authored
              <rdar://problem/5699933> http/tests/security/cross-frame-access-get.html is still failing
              * DumpRenderTree/win/DumpRenderTree.cpp: (main): Clear HTTP cache to ensure consistent test environment
              (matching Mac DRT).
              * DumpRenderTree/win/DumpRenderTree.vcproj: Link to CFNetwork.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29790 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  4. 24 Jan, 2008 8 commits
    • sfalken@apple.com's avatar
      Build fix · a0db5570
      sfalken@apple.com authored
              * WebKit.vcproj/WebKit.sln:
              * WebKit.vcproj/WebKit.submit.sln:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29785 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • sfalken@apple.com's avatar
      Build fix. · aba8d5b0
      sfalken@apple.com authored
              * JavaScriptCore.vcproj/JavaScriptCore.sln:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29784 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • sfalken@apple.com's avatar
      Build fix. · 3d359162
      sfalken@apple.com authored
              * JavaScriptCore.vcproj/JavaScriptCoreSubmit.sln:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29783 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • weinig@apple.com's avatar
      WebKitTools: · e4311be6
      weinig@apple.com authored
              Reviewed by Ada Chan.
              Fix for <rdar://5131975> DumpRenderTree doesn't support undo/redo
              - Adds simplified UndoManager to windows DRT to allow testing the
                undo/redo code paths in WebCore and WebKit.  This is a temporary
                solution to an issue that should eventually be solved by having a
                shared UndoManager in WebKit.
              * DumpRenderTree/win/DumpRenderTree.cpp:
              * DumpRenderTree/win/UIDelegate.cpp:
              * DumpRenderTree/win/UIDelegate.h:
              Reviewed by Ada Chan.
              <rdar://5131975> DumpRenderTree doesn't support undo/redo
              * platform/win/Skipped: With undo/redo support enabled, we can now
              remove the undo tests from the Skipped list.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29782 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • aroben@apple.com's avatar
      Better fix for Bug 16996 · fef84c14
      aroben@apple.com authored
              Rubberstamped by Mitz.
              * loader/CachedFont.cpp:
              (WebCore::CachedFont::ensureCustomFontData): Don't call
              createFontCustomPlatformData if m_data is null.
              * platform/graphics/gtk/FontCustomPlatformData.cpp:
              (WebCore::createFontCustomPlatformData): Added an assertion.
              * platform/graphics/mac/FontCustomPlatformData.cpp:
              (WebCore::createFontCustomPlatformData): Ditto.
              * platform/graphics/qt/FontCustomPlatformData.cpp:
              (WebCore::createFontCustomPlatformData): Ditto.
              * platform/graphics/win/FontCustomPlatformData.cpp:
              (WebCore::createFontCustomPlatformData): Ditto.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29781 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • aroben@apple.com's avatar
      Fix Bug 16996: Crash in createFontCustomPlatformData when loading 0-byte font via @font-face · 9c2ce3bc
      aroben@apple.com authored
               Fix Bug 16996: Crash in createFontCustomPlatformData when loading
               0-byte font via @font-face
               Reviewed by Hyatt.
               Test: fast/loader/font-face-empty.html
               * platform/graphics/win/FontCustomPlatformData.cpp:
               (WebCore::createFontCustomPlatformData): Null-check the buffer
               Test for Bug 16996: Crash in createFontCustomPlatformData when loading
               0-byte font via @font-face
               Reviewed by Hyatt.
               * fast/loader/font-face-empty-expected.txt: Added.
               * fast/loader/font-face-empty.html: Added.
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29780 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • hyatt@apple.com's avatar
      Update results for an editing test that changed from Acid3 fix. · 1264051a
      hyatt@apple.com authored
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29779 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    • jhoneycutt@apple.com's avatar
      2008-01-24 Jon Honeycutt <jhoneycutt@apple.com> · 71878442
      jhoneycutt@apple.com authored
              Reviewed by Anders.
              <rdar://problem/5588807> Crash in Flash when destroying plug-in (found
              using yahoo beta mail)
              Flash can dereference NULL in the call to NPP_URLNotify if a request
              made with NPN_PostURLNotify fails before NPP_NewStream is called.
              Work around this by creating a quirk, PluginQuirkFlashURLNotifyBug, and
              checking for this quirk before calling NPP_URLNotify for any request
              made with NPN_PostURLNotify. If the quirk is present, call NPP_NewStream
              and NPP_DestroyStream before calling NPP_URLNotify.
              * WebCore.vcproj/WebCore.vcproj:
              * plugins/PluginQuirkSet.h: Added. Moved quirks out of PluginViewWin so
              PluginViewWin and PluginStream could share it. Created a class,
              PluginQuirkSet, to store plug-in quirks
              * plugins/PluginStream.cpp:
              (WebCore::PluginStream::PluginStream): Copy the PluginQuirkSet for this
              (WebCore::PluginStream::destroyStream): Check for the FlashURLNotifyBug
              * plugins/PluginStream.h:
              * plugins/win/PluginViewWin.cpp:
              (WebCore::PluginViewWin::performRequest): Pass the quirks when creating
              the PluginStream
              (WebCore::PluginViewWin::didReceiveResponse): Same
              (WebCore::PluginViewWin::wndProc): Use add / contains instead of
              bit ops
              (WebCore::PluginViewWin::userAgent): Same
              (WebCore::PluginViewWin::invalidateRect): Same
              (WebCore::PluginViewWin::~PluginViewWin): Same
              (WebCore::PluginViewWin::determineQuirks): Same
              (WebCore::PluginViewWin::setParameters): Same
              (WebCore::PluginViewWin::PluginViewWin): Same
              (WebCore::PluginViewWin::init): Same
              (WebCore::PluginViewWin::setCallingPlugin): Same
              * plugins/win/PluginViewWin.h:
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29778 268f45cc-cd09-0410-ab3c-d52691b4dbfc