WebKit-https.git
11 years agoMake randomNumber generate 2^53 values instead of 2^32 (or 2^31 for rand() platforms)
oliver@apple.com [Fri, 2 Jan 2009 20:17:21 +0000 (20:17 +0000)]
Make randomNumber generate 2^53 values instead of 2^32 (or 2^31 for rand() platforms)

Reviewed by Maciej Stachowiak

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39553 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2009-01-02 Eric Carlson <eric.carlson@apple.com>
eric.carlson@apple.com [Fri, 2 Jan 2009 18:33:35 +0000 (18:33 +0000)]
2009-01-02  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Darin Adler

        https://bugs.webkit.org/show_bug.cgi?id=23043

        Pull media controls css out of html4.css into separate file. Don't generate
        wml, svg, or media css globals unless the feature is enabled.

        * DerivedSources.make:
            Don't include css for unused features.

        * WebCore.xcodeproj/project.pbxproj:
            include mediaControls.css

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::styleForElement):
            don't parse or add media css unless VIDEO feature is enabled and the target
            element is video or audio

        * css/html4.css:
            moved media controls css to mediaControls.css

        * css/mediaControls.css: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39552 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago Remove declaration for JSC::Identifier::initializeIdentifierThreading()
ddkilzer@apple.com [Fri, 2 Jan 2009 18:11:54 +0000 (18:11 +0000)]
    Remove declaration for JSC::Identifier::initializeIdentifierThreading()

        Reviewed by Alexey Proskuryakov.

        * runtime/Identifier.h:
        (JSC::Identifier::initializeIdentifierThreading): Removed
        declaration since the implementation was removed in r34412.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39551 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago Reviewed by Darin Adler.
ap@webkit.org [Fri, 2 Jan 2009 17:44:27 +0000 (17:44 +0000)]
    Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=23076
        Add tests for application cache manifest parse failures

        * http/tests/appcache/resources/.htaccess:
        * http/tests/appcache/resources/wrong-content-type.manifest: Added.
        * http/tests/appcache/resources/wrong-signature.manifest: Added.
        * http/tests/appcache/wrong-content-type-expected.txt: Added.
        * http/tests/appcache/wrong-content-type.html: Added.
        * http/tests/appcache/wrong-signature-expected.txt: Added.
        * http/tests/appcache/wrong-signature.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39550 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2009-01-02 Cameron Zwarich <cwzwarich@uwaterloo.ca>
cwzwarich@webkit.org [Fri, 2 Jan 2009 15:18:11 +0000 (15:18 +0000)]
2009-01-02  Cameron Zwarich  <cwzwarich@uwaterloo.ca>

        Reviewed by Darin Adler.

        Bug 23060: REGRESSION (r38629): Cannot scroll a WebHTMLView using Home/End/Page up/Page down
        <https://bugs.webkit.org/show_bug.cgi?id=23060>
        <rdar://problem/6467830>

        After r38629, all keyboard events get sent by Editor to the EditorClient, even
        if the selection is not editable. If the event's command is unsupported by
        WebHTMLView, WebHTMLView mistakenly thinks that the event was handled when it
        was not. When using the page up / page down keys, the events generated are of
        the form scrollPageUp rather than movePageUp, so they are unsupported by
        WebHTMLView and cause this bug to occur.

        * WebView/WebHTMLView.mm:
        (-[WebHTMLView doCommandBySelector:]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39549 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago Reviewed by Darin Adler.
ap@webkit.org [Fri, 2 Jan 2009 11:12:39 +0000 (11:12 +0000)]
    Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=23022
        Fix multiple issues with appcache online whitelist handling

        Test: http/tests/appcache/online-whitelist.html

        * loader/appcache/ApplicationCache.cpp:
        (WebCore::ApplicationCache::isURLInOnlineWhitelist): Test whitelist entries as prefixes,
        making it possible to use them for CGI invocation (as required by HTML5).

        * loader/DocumentLoader.cpp: (WebCore::DocumentLoader::shouldLoadResourceFromApplicationCache):
        Re-ordered checks, so that resources that are cached, but are also listed in online whitelist
        are loaded from the cache. This is required by HTML5, although Firefox doesn't match.

        * loader/appcache/ManifestParser.cpp:
        (WebCore::parseManifest):
        * loader/appcache/ManifestParser.h:
        * loader/appcache/ApplicationCache.h:
        (WebCore::ApplicationCache::onlineWhitelist):
        * loader/appcache/ApplicationCacheStorage.cpp:
        (WebCore::ApplicationCacheStorage::store):
        (WebCore::ApplicationCacheStorage::loadCache):
        Changed online whitelist to be a vector of URLs, which is better suited for the new algorithm.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39548 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years agoWebCore:
darin@apple.com [Fri, 2 Jan 2009 09:27:08 +0000 (09:27 +0000)]
WebCore:

2009-01-02  Darin Adler  <darin@apple.com>

        Reviewed by Oliver Hunt.

        Bug 23072: REGRESSION (r37371): In the Dictionary application, scroll bar appears inside its web view when resizing its window
        https://bugs.webkit.org/show_bug.cgi?id=23072
        rdar://problem/6368028

        * WebCore.base.exp: Updated.
        * WebCore.xcodeproj/project.pbxproj: Mark HTMLHeadElement.h Private so it can be used in WebKit.

        * dom/Document.cpp:
        (WebCore::Document::Document): Initialize m_frameElementsShouldIgnoreScrolling to false.
        * dom/Document.h: Added setFrameElementsShouldIgnoreScrolling, frameElementsShouldIgnoreScrolling,
        and m_frameElementsShouldIgnoreScrolling.

        * html/HTMLFrameElementBase.cpp:
        (WebCore::HTMLFrameElementBase::parseMappedAttribute): Don't allow changes to the scrolling attribute
        to affect the scrolling mode if frameElementsShouldIgnoreScrolling() returns true. This is only
        triggered on Mac OS X when running the Dictionary application.

WebKit:

2009-01-02  Darin Adler  <darin@apple.com>

        * StringsNotToBeLocalized.txt: Updated.

WebKit/mac:

2009-01-02  Darin Adler  <darin@apple.com>

        Reviewed by Oliver Hunt.

        Bug 23072: REGRESSION (r37371): In the Dictionary application, scroll bar appears inside its web view when resizing its window
        https://bugs.webkit.org/show_bug.cgi?id=23072
        rdar://problem/6368028

        * WebCoreSupport/WebFrameLoaderClient.mm:
        (isAppleDictionaryApplication): Added.
        (applyAppleDictionaryApplicationQuirk): Added. Under the right conditions, sets
        a flag to ask HTMLFrameElementBase to ignore the scrolling attribute.
        (WebFrameLoaderClient::dispatchWillSendRequest): Call the two functions above to
        apply the quirk when the relevant script is loaded.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39547 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago Reviewed by Darin Adler.
ap@webkit.org [Fri, 2 Jan 2009 09:25:02 +0000 (09:25 +0000)]
    Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=23036
        <rdar://problem/6451666> Implement AppCache fallback entries (23036)

        Test: http/tests/appcache/fallback.html

        * loader/FrameLoader.cpp: (WebCore::FrameLoader::loadResourceSynchronously): Use fallback
        entries if normal loading fails.

        * loader/DocumentLoader.cpp:
        (WebCore::DocumentLoader::shouldLoadResourceFromApplicationCache): Do not prevent normal
        loading for resources that match fallback namespaces - they are only loaded from the cache
        if that fails.
        (WebCore::DocumentLoader::getApplicationCacheFallbackResource): Get a fallback entry for
        resource from associated appcache, or from passed in one, if any.
        (WebCore::DocumentLoader::scheduleLoadFallbackResourceFromApplicationCache): If a fallback
        entry for resourse exists, add it to pending substitute loads.

        * loader/DocumentLoader.h: Added new functions for loading fallback data for resources.

        * loader/ResourceLoader.h:
        * loader/ResourceLoader.cpp:
        (WebCore::ResourceLoader::scheduleLoadFallbackResourceFromApplicationCache): This function
        is called when normal loading fails (which includes network failures, 4xx and 5xx responses,
        and cross-origin redirects) to load appcache fallback data instead. It can use either the
        cache that is associated with the browsing context, or a custom one if association is yet
        to take place.
        (WebCore::ResourceLoader::willSendRequest): Try using fallback data.
        (WebCore::ResourceLoader::didReceiveResponse): Ditto.
        (WebCore::ResourceLoader::didFail): Ditto.

        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::didReceiveResponse): Locate an appropriate cache and load
        fallback data from it if loading fails. The browsing context may still be associated with
        its previous document here, so the cache to load from must be passed explicitly.
        (WebCore::MainResourceLoader::didFail): Ditto.
        (WebCore::MainResourceLoader::load): Remove unnecessary check and FIXME.

        * loader/appcache/ApplicationCache.cpp:
        (WebCore::ApplicationCache::setFallbackURLs):
        (WebCore::ApplicationCache::urlMatchesFallbackNamespace):
        * loader/appcache/ApplicationCache.h:
        (WebCore::ApplicationCache::fallbackURLs):
        * loader/appcache/ApplicationCacheStorage.cpp:
        (WebCore::ApplicationCacheStorage::cacheGroupForURL):
        (WebCore::ApplicationCacheStorage::fallbackCacheGroupForURL):
        (WebCore::ApplicationCacheStorage::store):
        (WebCore::ApplicationCacheStorage::loadCache):
        (WebCore::ApplicationCacheStorage::storeCopyOfCache):
        * loader/appcache/ApplicationCacheStorage.h:
        * loader/appcache/ApplicationCacheGroup.cpp:
        (WebCore::ApplicationCacheGroup::fallbackCacheForMainRequest):
        (WebCore::ApplicationCacheGroup::didFinishLoadingManifest):
        * loader/appcache/ApplicationCacheGroup.h:
        Implement fallback map saving and loading, pass it to the cache.

        * loader/appcache/ManifestParser.h: Use a correct data structure for fallback map - keys
        are matched by prefix, so HAshMap cannot be used.

        * loader/appcache/ManifestParser.cpp: (WebCore::parseManifest): Fix bugs in fallback section
        parsing.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39546 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago<rdar://problem/6450530> WebCore::FontPlatformData should not leak
oliver@apple.com [Fri, 2 Jan 2009 07:49:37 +0000 (07:49 +0000)]
<rdar://problem/6450530> WebCore::FontPlatformData should not leak

Reviewed by Dan Bernstein.

Whoops, previous patch should also have fixed the font referencing in
the constructor.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39545 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago<rdar://problem/6450530> WebCore::FontPlatformData should not leak
oliver@apple.com [Fri, 2 Jan 2009 07:46:05 +0000 (07:46 +0000)]
<rdar://problem/6450530> WebCore::FontPlatformData should not leak

Reviewed by Dan Bernstein.

Make sure we only adopt the new font, rather than re-referencing (and so leaking).

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39544 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2009-01-01 Darin Adler <darin@apple.com>
darin@apple.com [Fri, 2 Jan 2009 06:09:59 +0000 (06:09 +0000)]
2009-01-01  Darin Adler  <darin@apple.com>

        Add one more String.replace test case that I should have included in that last check-in.

        * fast/js/resources/string-replace-3.js: Added test case that covers more of the cases where
        $0-$99 are used but are actually valid.
        * fast/js/string-replace-3-expected.txt: Added new result.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39543 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years agoJavaScriptCore:
darin@apple.com [Fri, 2 Jan 2009 05:56:54 +0000 (05:56 +0000)]
JavaScriptCore:

2009-01-01  Darin Adler  <darin@apple.com>

        Reviewed by Oliver Hunt.

        String.replace does not support $& replacement metacharacter when search term is not a RegExp
        <https://bugs.webkit.org/show_bug.cgi?id=21431>
        <rdar://problem/6274993>

        Test: fast/js/string-replace-3.html

        * runtime/StringPrototype.cpp:
        (JSC::substituteBackreferences): Added a null check here so we won't try to handle $$-$9
        backreferences when the search term is a string, not a RegExp. Added a check for 0 so we
        won't try to handle $0 or $00 as a backreference.
        (JSC::stringProtoFuncReplace): Added a call to substituteBackreferences.

LayoutTests:

2009-01-01  Darin Adler  <darin@apple.com>

        Reviewed by Oliver Hunt.

        String.replace does not support $& replacement metacharacter when search term is not a RegExp
        <https://bugs.webkit.org/show_bug.cgi?id=21431>
        <rdar://problem/6274993>

        * fast/js/resources/string-replace-3.js: Added test cases to cover replace with non-regexp and
        to cover "$0" and "$00".
        * fast/js/string-replace-3-expected.txt: Added new results.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39542 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years agoWebCore:
darin@apple.com [Fri, 2 Jan 2009 04:47:05 +0000 (04:47 +0000)]
WebCore:

2009-01-01  Darin Adler  <darin@apple.com>

        Reviewed by Dan Bernstein.

        Bug 23071: REGRESSION (r39536): New test failures after committing patch in bug 23051 (ICU search)
        https://bugs.webkit.org/show_bug.cgi?id=23071

        Also fix some things that Dan suggested during review of the ICU search patch that I forgot
        the first time around.

        * editing/TextIterator.cpp: Use ICU search on all platforms that use ICU, now that
        we've double checked it works everywhere, removing HAVE_ICU_SEARCH entirely.
        Removed unused m_atBreak data member from the non-ICU code path.
        (WebCore::TextIterator::TextIterator): Move null check up.
        (WebCore::TextIterator::handleTextBox): Fix mistake that made the iterator include
        collapsed whitespace. This was left over from an earlier version of the patch.
        (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
        Move null check up.

LayoutTests:

2009-01-01  Darin Adler  <darin@apple.com>

        Reviewed by Dan Bernstein.

        Turn on the regression test for ICU search on Mac OS X Tiger too.
        It was already on for Windows (by accident, failing), but now WebCore has been changed
        so it should work fine on all platforms using ICU, which includes both of those.

        * platform/mac-tiger/editing/execCommand: Removed.
        * platform/mac-tiger/editing/execCommand/findString-diacriticals-expected.txt: Removed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39541 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2009-01-01 Gavin Barraclough <barraclough@apple.com>
barraclough@apple.com [Fri, 2 Jan 2009 03:06:10 +0000 (03:06 +0000)]
2009-01-01  Gavin Barraclough  <barraclough@apple.com>

        Reviewed by Darin Adler.

        Allow 32-bit integers to be stored in JSImmediates, on x64-bit.
        Presently the top 32-bits of a 64-bit JSImmediate serve as a sign extension of a 31-bit
        int stored in the low word (shifted left by one, to make room for a tag).  In the new
        format, the top 31-bits serve as a sign extension of a 32-bit int, still shifted left by
        one.

        The new behavior is enabled using a flag in Platform.h, 'WTF_USE_ALTERNATE_JSIMMEDIATE'.
        When this is set the constants defining the range of ints allowed to be stored as
        JSImmediate values is extended.  The code in JSImmediate.h can safely operate on either
        format.  This patch updates the JIT so that it can also operate with the new format.

        ~2% progression on x86-64, with & without the JIT, on sunspider & v8 tests.

        * assembler/MacroAssembler.h:
        (JSC::MacroAssembler::addPtr):
        (JSC::MacroAssembler::orPtr):
        (JSC::MacroAssembler::or32):
        (JSC::MacroAssembler::rshiftPtr):
        (JSC::MacroAssembler::rshift32):
        (JSC::MacroAssembler::subPtr):
        (JSC::MacroAssembler::xorPtr):
        (JSC::MacroAssembler::xor32):
        (JSC::MacroAssembler::move):
        (JSC::MacroAssembler::compareImm64ForBranch):
        (JSC::MacroAssembler::compareImm64ForBranchEquality):
        (JSC::MacroAssembler::jePtr):
        (JSC::MacroAssembler::jgePtr):
        (JSC::MacroAssembler::jlPtr):
        (JSC::MacroAssembler::jlePtr):
        (JSC::MacroAssembler::jnePtr):
        (JSC::MacroAssembler::jnzSubPtr):
        (JSC::MacroAssembler::joAddPtr):
        (JSC::MacroAssembler::jzSubPtr):
        * assembler/X86Assembler.h:
        (JSC::X86Assembler::addq_rr):
        (JSC::X86Assembler::orq_ir):
        (JSC::X86Assembler::subq_ir):
        (JSC::X86Assembler::xorq_rr):
        (JSC::X86Assembler::sarq_CLr):
        (JSC::X86Assembler::sarq_i8r):
        (JSC::X86Assembler::cmpq_ir):
        * jit/JIT.cpp:
        (JSC::JIT::compileOpStrictEq):
        (JSC::JIT::privateCompileMainPass):
        (JSC::JIT::privateCompileSlowCases):
        (JSC::JIT::privateCompileCTIMachineTrampolines):
        * jit/JIT.h:
        * jit/JITArithmetic.cpp:
        (JSC::JIT::compileFastArith_op_lshift):
        (JSC::JIT::compileFastArithSlow_op_lshift):
        (JSC::JIT::compileFastArith_op_rshift):
        (JSC::JIT::compileFastArithSlow_op_rshift):
        (JSC::JIT::compileFastArith_op_bitand):
        (JSC::JIT::compileFastArithSlow_op_bitand):
        (JSC::JIT::compileFastArith_op_mod):
        (JSC::JIT::compileFastArithSlow_op_mod):
        (JSC::JIT::compileFastArith_op_add):
        (JSC::JIT::compileFastArithSlow_op_add):
        (JSC::JIT::compileFastArith_op_mul):
        (JSC::JIT::compileFastArithSlow_op_mul):
        (JSC::JIT::compileFastArith_op_post_inc):
        (JSC::JIT::compileFastArithSlow_op_post_inc):
        (JSC::JIT::compileFastArith_op_post_dec):
        (JSC::JIT::compileFastArithSlow_op_post_dec):
        (JSC::JIT::compileFastArith_op_pre_inc):
        (JSC::JIT::compileFastArithSlow_op_pre_inc):
        (JSC::JIT::compileFastArith_op_pre_dec):
        (JSC::JIT::compileFastArithSlow_op_pre_dec):
        (JSC::JIT::compileBinaryArithOp):
        * jit/JITInlineMethods.h:
        (JSC::JIT::getConstantOperand):
        (JSC::JIT::getConstantOperandImmediateInt):
        (JSC::JIT::isOperandConstantImmediateInt):
        (JSC::JIT::isOperandConstant31BitImmediateInt):
        (JSC::JIT::emitFastArithDeTagImmediate):
        (JSC::JIT::emitFastArithDeTagImmediateJumpIfZero):
        (JSC::JIT::emitFastArithReTagImmediate):
        (JSC::JIT::emitFastArithImmToInt):
        (JSC::JIT::emitFastArithIntToImmNoCheck):
        * runtime/JSImmediate.h:
        (JSC::JSImmediate::isPositiveNumber):
        (JSC::JSImmediate::isNegative):
        (JSC::JSImmediate::rightShiftImmediateNumbers):
        (JSC::JSImmediate::canDoFastAdditiveOperations):
        (JSC::JSImmediate::makeValue):
        (JSC::JSImmediate::makeInt):
        (JSC::JSImmediate::makeBool):
        (JSC::JSImmediate::intValue):
        (JSC::JSImmediate::rawValue):
        (JSC::JSImmediate::toBoolean):
        (JSC::JSImmediate::from):
        * wtf/Platform.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39540 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years agoSet the svn:mime-type property of recently-added PNG files to image/png.
mitz@apple.com [Fri, 2 Jan 2009 02:21:07 +0000 (02:21 +0000)]
Set the svn:mime-type property of recently-added PNG files to image/png.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39539 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2009-01-01 Simon Fraser <simon.fraser@apple.com>
simon.fraser@apple.com [Fri, 2 Jan 2009 02:07:01 +0000 (02:07 +0000)]
2009-01-01  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Darin Adler, Oliver Hunt

        https://bugs.webkit.org/show_bug.cgi?id=23065

        Enable incremental painting of canvas. This turns incremental painting
        back on, and fixes issues with stroke width and miters, calling willDraw()
        for strokeText and fillText, and taking shadows into account.

        Test: fast/canvas/canvas-incremental-repaint.html

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39538 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2008-12-29 Konstantin Käfer <kkaefer@gmail.com>
oliver@apple.com [Fri, 2 Jan 2009 01:08:20 +0000 (01:08 +0000)]
2008-12-29  Konstantin Käfer  <kkaefer@gmail.com>

        Reviewed by Tim Hatcher.

        Fix for https://bugs.webkit.org/show_bug.cgi?id=17229
        <rdar://problem/5732829> Inspector should show properties of all JS objects in Console

        Prints objects not as plain text but makes them expandable so that
        they can be inspected.

        * inspector/front-end/Console.js:
        (): added a parameter "inline" to the WebInspector.Console._format function which indicates
            whether the object is printed in the context of another string (with console.log()) or
            as sole element.
        (.): objects and DOM nodes are now printed in an expandable form when they are printed alone
            (i.e. not in the context of a console.log() string) so that they can be inspected.
        * inspector/front-end/PropertiesSection.js:
        (WebInspector.PropertiesSection.prototype.set title): Allow DOM Nodes as title instead of strings
            in that case, the Node is inserted into the title instead of the string value of the passed
            object. This is used for displaying linkified titles, for example when inspecting DOM nodes,
            the syntax highlighted HTML representation is shown instead of the plain source code.
        * inspector/front-end/inspector.css: correct the offsetParent for the expandable object inspector.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39537 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years agoWebCore:
darin@apple.com [Thu, 1 Jan 2009 21:19:59 +0000 (21:19 +0000)]
WebCore:

2009-01-01  Darin Adler  <darin@apple.com>

        Reviewed by Dan Bernstein.

        Bug 23051: web page searching should use ICU's search so it can ignore diacritical differences
        https://bugs.webkit.org/show_bug.cgi?id=23051
        rdar://problem/3574497

        Test: editing/execCommand/findString-diacriticals.html

        * editing/TextIterator.cpp: Changed the CircularSearchBuffer class to have a new
        name, since it doesn't always use a circular buffer any more. Changed the interface
        so it can work well in the new chunky comparison mode for ICU search, and also
        added private data members for both the ICU-search and non-ICU-search code paths.
        (WebCore::TextIterator::TextIterator): Use the versions of the Range functions
        that don't take an exception code.
        (WebCore::TextIterator::handleTextBox): Added a special case to handle the position
        of a collapsed-away space better. This is not needed for search mechanism, but was
        helpful in an earlier version of this patch, and is still an improvement.
        (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator): Use the
        versions of the Range functions that don't take an exception code.
        (WebCore::CharacterIterator::range): Ditto.
        (WebCore::characterSubrange): Added. Helper function used in both places below where
        we want to convert a range and character offsets into a subrange.
        (WebCore::WordAwareIterator::advance): Use the versions of the Range functions that
        don't take an exception code.
        (WebCore::createSearcher): Added.
        (WebCore::searcher): Added.
        (WebCore::lockSearcher): Added.
        (WebCore::unlockSearcher): Added.
        (WebCore::SearchBuffer::SearchBuffer): Added.
        (WebCore::SearchBuffer::~SearchBuffer): Added.
        (WebCore::SearchBuffer::append): Added.
        (WebCore::SearchBuffer::atBreak): Added.
        (WebCore::SearchBuffer::reachedBreak): Added.
        (WebCore::SearchBuffer::search): Added.
        (WebCore::SearchBuffer::length): Added.
        (WebCore::TextIterator::subrange): Changed to call the characterSubrange
        function above.
        (WebCore::TextIterator::rangeFromLocationAndLength): Use the versions of the
        Range functions that don't take an exception code. Also tweak some other details
        of the code.
        (WebCore::isAllCollapsibleWhitespace): Added.
        (WebCore::collapsedToBoundary): Added.
        (WebCore::findPlainText): Rewrote to use new interface and streamline the
        logic a bit.

        Add the relevant files in the icu directory. As icu/README says, the "icu"
        directory is really just for Mac OS X, where we have the ICU library but not
        the headers installed. It should be moved inside platform/mac at some point
        to make this more clear (and the copy in JavaScriptCore should be moved
        somewhere similar for the same reason).

        * icu/unicode/ucoleitr.h: Added.
        * icu/unicode/usearch.h: Added.

LayoutTests:

2009-01-01  Darin Adler  <darin@apple.com>

        Reviewed by Dan Bernstein.

        Bug 23051: web page searching should use ICU's search so it can ignore diacritical differences
        https://bugs.webkit.org/show_bug.cgi?id=23051
        rdar://problem/3574497

        Currently this is only activated on the Mac platform, not including Tiger.

        * editing/execCommand/findString-diacriticals-expected.txt: Added. Expect failure.
        * editing/execCommand/findString-diacriticals.html: Added.
        * platform/mac-tiger/editing/execCommand: Added.
        * platform/mac-tiger/editing/execCommand/findString-diacriticals-expected.txt: Added. Expect failure.
        * platform/mac/editing/execCommand/findString-diacriticals-expected.txt: Added. Expect success.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39536 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years agoCrashTracer: [REGRESSION] 1090 crashes in Safari at com.apple.JavaScriptCore: KJS...
oliver@apple.com [Thu, 1 Jan 2009 08:34:58 +0000 (08:34 +0000)]
CrashTracer: [REGRESSION] 1090 crashes in Safari at com.apple.JavaScriptCore: KJS::JSGlobalObject::stopTimeoutCheck + 0
<rdar://problem/5821130>

Reviewed by Cameron Zwarich.

This was caused by a plugin instance calling into JS code that removed the plugin
object.  This fix is to cache the global object locally in a ProtectedPtr so we don't
need to rely on the continued existence of the plugin instance.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39535 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago[jsfunfuzz] Assertion + incorrect behaviour with dynamically created local variable...
oliver@apple.com [Thu, 1 Jan 2009 08:22:40 +0000 (08:22 +0000)]
[jsfunfuzz] Assertion + incorrect behaviour with dynamically created local variable in a catch block
<https://bugs.webkit.org/show_bug.cgi?id=23063>

Reviewed by Cameron Zwarich

Eval inside a catch block attempts to use the catch block's static scope in
an unsafe way by attempting to add new properties to the scope.  This patch
fixes this issue simply by preventing the catch block from using a static
scope if it contains an eval.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39534 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago[jsfunfuzz] Computed exception offset wrong when first instruction is attempt to...
oliver@apple.com [Thu, 1 Jan 2009 02:33:43 +0000 (02:33 +0000)]
[jsfunfuzz] Computed exception offset wrong when first instruction is attempt to resolve deleted eval
<https://bugs.webkit.org/show_bug.cgi?id=23062>

Reviewed by Gavin Barraclough.

This was caused by the expression information for the initial resolve of
eval not being emitted.  If this resolve was the first instruction that
could throw an exception the information search would fail leading to an
assertion failure.  If it was not the first throwable opcode the wrong
expression information would used.

Fix is simply to emit the expression info.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39533 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years agoAdd section information for View, Frame, Settings, HistoryItem, BackForwardList,...
zecke@webkit.org [Wed, 31 Dec 2008 17:52:47 +0000 (17:52 +0000)]
Add section information for View, Frame, Settings, HistoryItem, BackForwardList, WindowFeatures and Inspector

Add section information and informal examples for WebKitWebView,
WebKitWebFrame, WebKitWebSettings, WebKitWebNetworkRequest,
WebKitWebWindowFeatures, WebKitWebHistoryItem,
WebKitWebBackForwardList and WebKitWebInspector.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39532 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2008-12-31 Zan Dobersek <zandobersek@gmail.com>
zecke@webkit.org [Wed, 31 Dec 2008 17:31:04 +0000 (17:31 +0000)]
2008-12-31  Zan Dobersek  <zandobersek@gmail.com>

        Reviewed by Holger Freyther.

        https://bugs.webkit.org/show_bug.cgi?id=22812

        Prevent TestNetscapePlugin from installing system-wide.

        * GNUmakefile.am:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39531 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2008-12-31 Laszlo Gombos <laszlo.1.gombos@nokia.com>
zecke@webkit.org [Wed, 31 Dec 2008 17:12:01 +0000 (17:12 +0000)]
2008-12-31  Laszlo Gombos  <laszlo.1.gombos@nokia.com>

        Reviewed by Holger Freyther.

        Fixes: https://bugs.webkit.org/show_bug.cgi?id=22964

        MinGW build failure.

        * platform/graphics/qt/SimpleFontDataQt.cpp:
        (WebCore::SimpleFontData::containsCharacters):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39530 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2008-12-31 Zan Dobersek <zandobersek@gmail.com>
zecke@webkit.org [Wed, 31 Dec 2008 16:52:19 +0000 (16:52 +0000)]
2008-12-31  Zan Dobersek  <zandobersek@gmail.com>

        Reviewed by Holger Freyther.

        https://bugs.webkit.org/show_bug.cgi?id=22842

        Move WebKitWebView's size allocation into a proper place.

        * DumpRenderTree/gtk/DumpRenderTree.cpp:
        (dump):
        (runTest):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39529 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2008-12-31 Alexander V. Butenko <alex@digiqube.com>
zecke@webkit.org [Wed, 31 Dec 2008 16:37:00 +0000 (16:37 +0000)]
2008-12-31  Alexander V. Butenko  <alex@digiqube.com>

        Reviewed by Holger Freyther.

        https://bugs.webkit.org/show_bug.cgi?id=22750
        [gtk] webkit up to r39121 crash on image urls like
        http:///sitename.com

        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::ResourceHandle::start):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39528 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2008-12-31 Hiroyuki Ikezoe <poincare@ikezoe.net>
zecke@webkit.org [Wed, 31 Dec 2008 16:17:04 +0000 (16:17 +0000)]
2008-12-31  Hiroyuki Ikezoe  <poincare@ikezoe.net>

        Reviewed by Holger Freyther.

        https://bugs.webkit.org/show_bug.cgi?id=18310

        * platform/graphics/gtk/SimpleFontDataPango.cpp:
        (WebCore::SimpleFontData::determinePitch): Do not invoke
        isFixedPitch() when the font is a custom font.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39527 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years agoMore work on Bug 3781: Animation via canvas could be faster
oliver@apple.com [Wed, 31 Dec 2008 12:32:12 +0000 (12:32 +0000)]
More work on Bug 3781: Animation via canvas could be faster
<https://bugs.webkit.org/show_bug.cgi?id=3781>

Reviewed by Cameron Zwarich

Make use of the fast path parsing of color strings that Color
uses.  This improves performance of '#rgb', '#rrggbb', etc and
named (eg. 'green') colors.

Improves frame rate of test by around 40%

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39526 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2008-12-31 Cameron Zwarich <cwzwarich@uwaterloo.ca>
cwzwarich@webkit.org [Wed, 31 Dec 2008 10:17:05 +0000 (10:17 +0000)]
2008-12-31  Cameron Zwarich  <cwzwarich@uwaterloo.ca>

        Reviewed by Oliver Hunt.

        Bug 23054: Caching of global lookups occurs even when the global object has become a dictionary
        <https://bugs.webkit.org/show_bug.cgi?id=23054>
        <rdar://problem/6469905>

        JavaScriptCore:

        * interpreter/Interpreter.cpp:
        (JSC::Interpreter::resolveGlobal): Do not cache lookup if the global
        object has transitioned to a dictionary.
        (JSC::Interpreter::cti_op_resolve_global): Do not cache lookup if the
        global object has transitioned to a dictionary.

        LayoutTests:

        * fast/js/pic/delete-global-object-expected.txt: Added.
        * fast/js/pic/delete-global-object.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39525 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago<https://bugs.webkit.org/show_bug.cgi?id=23049> [jsfunfuzz] With blocks do not correc...
oliver@apple.com [Wed, 31 Dec 2008 06:49:34 +0000 (06:49 +0000)]
<https://bugs.webkit.org/show_bug.cgi?id=23049> [jsfunfuzz] With blocks do not correctly protect their scope object
<rdar://problem/6469742> Crash in JSC::TypeInfo::hasStandardGetOwnPropertySlot() running jsfunfuzz

Reviewed by Darin Adler

The problem that caused this was that with nodes were not correctly protecting
the final object that was placed in the scope chain.  We correct this by forcing
the use of a temporary register (which stops us relying on a local register
protecting the scope) and changing the behaviour of op_push_scope so that it
will store the final scope object.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39524 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2008-12-30 Simon Fraser <simon.fraser@apple.com>
simon.fraser@apple.com [Wed, 31 Dec 2008 05:16:27 +0000 (05:16 +0000)]
2008-12-30  Simon Fraser  <simon.fraser@apple.com>

        Fix spurious test failures by rounding floating point values to
        mask math differences between machines.

        * transitions/transform-op-list-match-expected.txt:
        * transitions/transform-op-list-match.html:
        * transitions/transform-op-list-no-match-expected.txt:
        * transitions/transform-op-list-no-match.html:
        * transitions/transition-test-helpers.js:
        (roundNumber):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39523 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2008-12-30 Simon Fraser <simon.fraser@apple.com>
simon.fraser@apple.com [Wed, 31 Dec 2008 00:11:50 +0000 (00:11 +0000)]
2008-12-30  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Darin Adler

        https://bugs.webkit.org/show_bug.cgi?id=23042

        Rather than doing a repaint() inside of computeAbsoluteRepaintRect()
        when there is a reflection, compute the location of the rect inside
        the reflection and take the union of the unreflected and reflected rects.

        Test: fast/repaint/reflection-redraw.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::computeAbsoluteRepaintRect):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::reflectedRect):
        * rendering/RenderObject.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39522 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2008-12-30 Cameron Zwarich <cwzwarich@uwaterloo.ca>
cwzwarich@webkit.org [Wed, 31 Dec 2008 00:07:20 +0000 (00:07 +0000)]
2008-12-30  Cameron Zwarich  <cwzwarich@uwaterloo.ca>

        Reviewed by Sam Weinig.

        Bug 23037: Parsing and reparsing disagree on automatic semicolon insertion
        <https://bugs.webkit.org/show_bug.cgi?id=23037>
        <rdar://problem/6467124>

        Parsing and reparsing disagree about automatic semicolon insertion, so that a
        function like

        function() { a = 1, }

        is parsed as being syntactically valid but gets a syntax error upon reparsing.
        This leads to an assertion failure in Parser::reparse(). It is not that big of
        an issue in practice, because in a Release build such a function will return
        'undefined' when called.

        In this case, we are not following the spec and it should be a syntax error.
        However, unless there is a newline separating the ',' and the '}', WebKit would
        not treat it as a syntax error in the past either. It would be a bit of work to
        make the automatic semicolon insertion match the spec exactly, so this patch
        changes it to match our past behaviour.

        The problem is that even during reparsing, the Lexer adds a semicolon at the
        end of the input, which confuses allowAutomaticSemicolon(), because it is
        expecting either a '}', the end of input, or a terminator like a newline.

        JavaScriptCore:

        * parser/Lexer.cpp:
        (JSC::Lexer::Lexer): Initialize m_isReparsing to false.
        (JSC::Lexer::lex): Do not perform automatic semicolon insertion in the Lexer if
        we are in the middle of reparsing.
        (JSC::Lexer::clear): Set m_isReparsing to false.
        * parser/Lexer.h:
        (JSC::Lexer::setIsReparsing): Added.
        * parser/Parser.cpp:
        (JSC::Parser::reparse): Call Lexer::setIsReparsing() to notify the Lexer of
        reparsing.

        LayoutTests:

        * fast/js/reparsing-semicolon-insertion-expected.txt: Added.
        * fast/js/reparsing-semicolon-insertion.html: Added.
        * fast/js/resources/reparsing-semicolon-insertion.js: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39521 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years agoWebCore:
mitz@apple.com [Tue, 30 Dec 2008 22:30:25 +0000 (22:30 +0000)]
WebCore:

        Reviewed by Adele Peterson.

        - fix <rdar://problem/6469944> REGRESSION(3.2.1-ToT): Repro crash in WebCore::HTMLInputElement::updatePlaceholderVisibility opening http://billshrink.com

        Test: fast/forms/placeholder-non-textfield.html

        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::parseMappedAttribute): Only call
        updatePlaceholderVisibility() when the placeholder attribute changes if
        the element is a text field.

LayoutTests:

        Reviewed by Adele Peterson.

        - test for <rdar://problem/6469944> REGRESSION(3.2.1-ToT): Repro crash in WebCore::HTMLInputElement::updatePlaceholderVisibility opening http://billshrink.com

        * fast/forms/placeholder-non-textfield-expected.txt: Added.
        * fast/forms/placeholder-non-textfield.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39520 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2008-12-30 Brent Fulgham <bfulgham@gmail.com>
pam@chromium.org [Tue, 30 Dec 2008 19:24:19 +0000 (19:24 +0000)]
2008-12-30  Brent Fulgham  <bfulgham@gmail.com>

        Reviewed by Darin Adler.
        Landed by Pamela Greene.

        Fixes: https://bugs.webkit.org/show_bug.cgi?id=22908.
        Update website so that newbies are told they must set the
        WebKitOutputDir to get a valid build.

        * building/build.html: Add language (and link) indicating the
        importance of setting the WebKitOutputDir variable, as well
        as a link to instructions on how to do so.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39519 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years agoFirst step of Bug 3781: Animation via canvas could be faster
oliver@apple.com [Tue, 30 Dec 2008 12:19:23 +0000 (12:19 +0000)]
First step of Bug 3781: Animation via canvas could be faster

Reviewed by Antti Koivisto.

Amortise the cost of calling repaint by coalescing repaint rects
while the canvas is drawn to.  In a later step we'll stop calling
repaint() directly, and instead have all dirty canvases repaint
at the end of JS execution.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39518 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2008-12-30 Cameron Zwarich <cwzwarich@uwaterloo.ca>
cwzwarich@webkit.org [Tue, 30 Dec 2008 11:08:26 +0000 (11:08 +0000)]
2008-12-30  Cameron Zwarich  <cwzwarich@uwaterloo.ca>

        Reviewed by Antti Koivisto.

        Bug 22931: Using the inspector with purgeable resources leads to assertion failures
        <https://bugs.webkit.org/show_bug.cgi?id=22931>

        Change InspectorResource::sourceString() so that it doesn't attempt to
        unsafely get the data of a purgeable CachedResource.

        * inspector/InspectorController.cpp:
        (WebCore::InspectorResource::sourceString): Attempt to make a purgeable
        resource unpurgeable, and if this not possible, return an empty string.
        * loader/CachedResource.h: Make InspectorResource a friend of CachedResource.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39517 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years agoYet another attempt to fix Tiger.
oliver@apple.com [Tue, 30 Dec 2008 07:54:28 +0000 (07:54 +0000)]
Yet another attempt to fix Tiger.

Reviewed by NOBODY(Build fix)

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39516 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years agoTiger build fix (correct this time)
oliver@apple.com [Tue, 30 Dec 2008 07:46:13 +0000 (07:46 +0000)]
Tiger build fix (correct this time)

Reviewed by NOBODY(build fix)

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39515 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago Reviewed by Sam Weinig.
ap@webkit.org [Tue, 30 Dec 2008 07:46:02 +0000 (07:46 +0000)]
    Reviewed by Sam Weinig.

        https://bugs.webkit.org/show_bug.cgi?id=23023
        Remove incomplete support for opportunistic appcache entries

        No change in behavior, thus no test.

        * loader/appcache/ApplicationCacheResource.h:
        (WebCore::ApplicationCacheResource::Type): Removed Opportunistic bit, will re-use when schema
        version changes.

        * loader/DocumentLoader.cpp:
        (WebCore::DocumentLoader::scheduleApplicationCacheLoad):
        * loader/appcache/ApplicationCacheGroup.cpp:
        (WebCore::ApplicationCacheGroup::didFinishLoadingManifest):
        * loader/appcache/ApplicationCacheResource.cpp:
        (WebCore::ApplicationCacheResource::dumpType):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39514 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2008-12-29 Cameron Zwarich <cwzwarich@uwaterloo.ca>
cwzwarich@webkit.org [Tue, 30 Dec 2008 07:42:11 +0000 (07:42 +0000)]
2008-12-29  Cameron Zwarich  <cwzwarich@uwaterloo.ca>

        Rubber-stamped by Alexey Proskuryakov.

        Revert r39509, because kjsyydebug is used in the generated code if YYDEBUG is 1.

        * parser/Grammar.y:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39513 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years agoTiger build fix
oliver@apple.com [Tue, 30 Dec 2008 07:39:35 +0000 (07:39 +0000)]
Tiger build fix

Reviewed by NOBODY(build fix)

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39512 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2008-12-29 Dirk Schulze <krit@webkit.org>
krit@webkit.org [Tue, 30 Dec 2008 07:33:13 +0000 (07:33 +0000)]
2008-12-29  Dirk Schulze  <krit@webkit.org>

        Reviewed by Oliver Hunt.

        Add arcTo support for Cairo. This is needed by Canvas.
        Cairo has no native support for arcTo. We have to make our
        own implementation.

        [Canvas] Cairo needs arcTo
        https://bugs.webkit.org/show_bug.cgi?id=23003

        * platform/graphics/cairo/PathCairo.cpp:
        (WebCore::Path::addArcTo):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39511 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago<rdar://problem/6358108> Insecure randomness in Math.random() leads to user tracking
oliver@apple.com [Tue, 30 Dec 2008 07:21:03 +0000 (07:21 +0000)]
<rdar://problem/6358108> Insecure randomness in Math.random() leads to user tracking

Reviewed by Mark Rowe

Switch to arc4random on PLATFORM(DARWIN), this is ~1.5x slower than random(), but the
it is still so fast that there is no fathomable way it could be a bottleneck for anything.

randomNumber is called in two places
  * During form submission where it is called once per form
  * Math.random in JSC.  For this difference to show up you have to be looping on
    a cached local copy of random, for a large (>10000) calls.

No change in SunSpider.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39510 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2008-12-29 Cameron Zwarich <cwzwarich@uwaterloo.ca>
cwzwarich@webkit.org [Tue, 30 Dec 2008 06:15:35 +0000 (06:15 +0000)]
2008-12-29  Cameron Zwarich  <cwzwarich@uwaterloo.ca>

        Rubber-stamped by Sam Weinig.

        Remove unused kjsyydebug #define.

        * parser/Grammar.y:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39509 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years agoBug 23030: Cannot setTransform with a non-invertible ctm
oliver@apple.com [Tue, 30 Dec 2008 06:15:31 +0000 (06:15 +0000)]
Bug 23030: Cannot setTransform with a non-invertible ctm

Reviewed by Cameron Zwarich.

Removed a series of unnecessary and incorrect checks for an invertible
transform.

Test: fast/canvas/canvas-set-properties-with-non-invertible-ctm.html

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39508 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2008-12-29 Cameron Zwarich <cwzwarich@uwaterloo.ca>
cwzwarich@webkit.org [Tue, 30 Dec 2008 05:37:00 +0000 (05:37 +0000)]
2008-12-29  Cameron Zwarich  <cwzwarich@uwaterloo.ca>

        Reviewed by Oliver Hunt and Sam Weinig.

        Bug 23029: REGRESSION (r39337): jsfunfuzz generates identical test files
        <https://bugs.webkit.org/show_bug.cgi?id=23029>
        <rdar://problem/6469185>

        The unification of random number generation in r39337 resulted in random()
        being initialized on Darwin, but rand() actually being used. Fix this by
        making randomNumber() use random() instead of rand() on Darwin.

        * wtf/RandomNumber.cpp:
        (WTF::randomNumber):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39507 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2008-12-29 Josh Roesslein <jroesslein@gmail.com>
oliver@apple.com [Tue, 30 Dec 2008 05:10:21 +0000 (05:10 +0000)]
2008-12-29  Josh Roesslein  <jroesslein@gmail.com>

Reviewed by Oliver Hunt.

Fixes: https://bugs.webkit.org/show_bug.cgi?id=22968

Context menu rendering error when full page zoomed

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39506 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2008-12-29 Sam Weinig <sam@webkit.org>
weinig@apple.com [Tue, 30 Dec 2008 03:00:37 +0000 (03:00 +0000)]
2008-12-29  Sam Weinig  <sam@webkit.org>

        Fix buildbots.

        * runtime/Structure.cpp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39505 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2008-12-29 Sam Weinig <sam@webkit.org>
weinig@apple.com [Tue, 30 Dec 2008 02:05:05 +0000 (02:05 +0000)]
2008-12-29  Sam Weinig  <sam@webkit.org>

        Reviewed by Mark Rowe.

        Add some basic memory statistic logging for Node.

        * dom/Node.cpp:
        (WebCore::Node::dumpStatistics):
        (WebCore::Node::Node):
        (WebCore::Node::~Node):
        (WebCore::Node::setDocument):
        * dom/Node.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39504 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2008-12-29 Sam Weinig <sam@webkit.org>
weinig@apple.com [Tue, 30 Dec 2008 02:03:58 +0000 (02:03 +0000)]
2008-12-29  Sam Weinig  <sam@webkit.org>

        Reviewed by Anders Carlsson.

        Remove one use of DeprecatedPtrList.

        * css/CSSRuleList.cpp:
        (WebCore::CSSRuleList::~CSSRuleList):
        (WebCore::CSSRuleList::length):
        (WebCore::CSSRuleList::item):
        (WebCore::CSSRuleList::deleteRule):
        (WebCore::CSSRuleList::append):
        (WebCore::CSSRuleList::insertRule):
        * css/CSSRuleList.h: Change m_lstCSSRules from using DeprecatedPtrList to a Vector.
        I measured no performance change and was comforted by the fact that we use a Vector
        for StyleList, which serves the exact same purpose.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39503 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2008-12-29 Sam Weinig <sam@webkit.org>
weinig@apple.com [Tue, 30 Dec 2008 00:28:40 +0000 (00:28 +0000)]
2008-12-29  Sam Weinig  <sam@webkit.org>

        Reviewed by Oliver Hunt.

        Patch for https://bugs.webkit.org/show_bug.cgi?id=23026
        Move the deleted offsets vector into the PropertyMap

        Saves 3 words per Structure.

        * runtime/PropertyMapHashTable.h:
        * runtime/Structure.cpp:
        (JSC::Structure::addPropertyTransition):
        (JSC::Structure::changePrototypeTransition):
        (JSC::Structure::getterSetterTransition):
        (JSC::Structure::toDictionaryTransition):
        (JSC::Structure::fromDictionaryTransition):
        (JSC::Structure::copyPropertyTable):
        (JSC::Structure::put):
        (JSC::Structure::remove):
        (JSC::Structure::rehashPropertyMapHashTable):
        * runtime/Structure.h:
        (JSC::Structure::propertyStorageSize):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39502 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2008-12-29 Adele Peterson <adele@apple.com>
adele@apple.com [Mon, 29 Dec 2008 21:42:33 +0000 (21:42 +0000)]
2008-12-29  Adele Peterson  <adele@apple.com>

        Reviewed by Brady Eidson.

        Fix for https://bugs.webkit.org/show_bug.cgi?id=21797
        <rdar://problem/6310682> REGRESSION: Crash in CFHTTPCookieStorageCopy beneath WebCore::cookies() when
        running fast/dom/document-attribute-js-null.html and http/tests/security/cookies/create-document.html

        Return early if the document is trying to get or set a cookie with an empty cookie url.

        * dom/Document.cpp:
        (WebCore::Document::cookie):
        (WebCore::Document::setCookie):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39501 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years agoIndex: LayoutTests/ChangeLog
ap@webkit.org [Mon, 29 Dec 2008 20:30:07 +0000 (20:30 +0000)]
Index: LayoutTests/ChangeLog
===================================================================
--- LayoutTests/ChangeLog (revision 39499)
+++ LayoutTests/ChangeLog (working copy)
@@ -1,3 +1,12 @@
+2008-12-29  Alexey Proskuryakov  <ap@webkit.org>
+
+        Reviewed by NOBODY (OOPS!).
+
+        Fix Windows svn update - replace a file with a semicolon in its name with an Apache rewrite.
+
+        * http/tests/appcache/resources/.htaccess: Added.
+        * http/tests/appcache/resources/UNKNOWN_SECTION:: Removed.
+
 2008-12-29  Glenn Wilson  <gwilson@chromium.org>

         Reviewed by Darin Adler.
Index: LayoutTests/http/tests/appcache/resources/.htaccess
===================================================================
--- LayoutTests/http/tests/appcache/resources/.htaccess (revision 0)
+++ LayoutTests/http/tests/appcache/resources/.htaccess (revision 0)
@@ -0,0 +1,2 @@
+RewriteEngine on
+RewriteRule ^UNKNOWN_SECTION: simple.txt [L,NS]
Index: LayoutTests/http/tests/appcache/resources/UNKNOWN_SECTION:
===================================================================

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39500 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2008-12-29 Glenn Wilson <gwilson@chromium.org>
pam@chromium.org [Mon, 29 Dec 2008 19:22:04 +0000 (19:22 +0000)]
2008-12-29  Glenn Wilson  <gwilson@chromium.org>

        Reviewed by Darin Adler.
        Landed by Pamela Greene.

        Added new layout tests verifying that using a locally-scoped
        variable in an event handler of a form takes precedence over
        names of items in that form.

        See: https://bugs.webkit.org/show_bug.cgi?id=22977

        * fast/forms/var-name-conflict-in-form-event-handler-expected.txt: Added.
        * fast/forms/var-name-conflict-in-form-event-handler.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39499 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2008-12-29 Cameron Zwarich <cwzwarich@uwaterloo.ca>
cwzwarich@webkit.org [Mon, 29 Dec 2008 11:08:30 +0000 (11:08 +0000)]
2008-12-29  Cameron Zwarich  <cwzwarich@uwaterloo.ca>

        Reviewed by Oliver Hunt.

        Change code using m_body.get() as a boolean to take advantage of the
        implicit conversion of RefPtr to boolean.

        * runtime/JSFunction.cpp:
        (JSC::JSFunction::~JSFunction):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39498 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2008-12-28 Cameron Zwarich <cwzwarich@uwaterloo.ca>
cwzwarich@webkit.org [Mon, 29 Dec 2008 01:35:02 +0000 (01:35 +0000)]
2008-12-28  Cameron Zwarich  <cwzwarich@uwaterloo.ca>

        Reviewed by Sam Weinig.

        Bug 23016: JavaScriptDebugServer::recompileAllJSFunctions() should not execute JS while reparsing all functions
        <https://bugs.webkit.org/show_bug.cgi?id=23016>
        <rdar://problem/6425077>

        JavaScriptDebugServer::recompileAllJSFunctions() calls sourceParsed() while
        reparsing all JS functions, which will execute JS in the inspector. Depending
        on the order in which functions are recompiled, a function could have a new
        body but other functions that have not been recompiled could have an optimized
        (in the sense of inline caching) call to it, bypassing the check of whether or
        not there is generated bytecode. This leads to a crash caused by accessing
        indices off of a null pointer.

        To fix the problem, simply delay calling sourceParsed() until after all functions
        have been reparsed. The crash isn't 100% reproducible, but on the one test case
        I have, this makes it impossible to reproduce after a large number of attempts,
        when it used to happen every few attempts.

        * inspector/JavaScriptDebugServer.cpp:
        (WebCore::JavaScriptDebugServer::recompileAllJSFunctions):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39497 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years agoRubber-stamped by Antti Koivisto.
zimmermann@webkit.org [Mon, 29 Dec 2008 00:25:09 +0000 (00:25 +0000)]
Rubber-stamped by Antti Koivisto.
Oops, remove some last minute ASSERTS that are obviously wrong.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39496 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years agoReviewed by Antti Koivisto.
zimmermann@webkit.org [Mon, 29 Dec 2008 00:16:19 +0000 (00:16 +0000)]
Reviewed by Antti Koivisto.

Fixes: https://bugs.webkit.org/show_bug.cgi?id=23015

Don't rely on HTMLFormControlElement in RenderTextControl.

Introduce an abstract FormControlElement class, containing the
valueMatchesRenderer/setValueMatchesRenderer, the only HTMLFormControlElement
specific methods that RenderTextControl relies on.

This makes it possible for WML to reuse RenderTextControl.
RenderTextControlSingleLine still relies on HTMLInputElement,
this will change if WMLInputElement is introduced.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39495 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2008-12-28 Cameron Zwarich <cwzwarich@uwaterloo.ca>
cwzwarich@webkit.org [Sun, 28 Dec 2008 21:33:57 +0000 (21:33 +0000)]
2008-12-28  Cameron Zwarich  <cwzwarich@uwaterloo.ca>

        Reviewed by Darin Adler.

        Bug 23006: Many Loader::Host member functions are not safe to use reentrantly
        <https://bugs.webkit.org/show_bug.cgi?id=23006>
        <rdar://problem/6216106>

        Many Loader::Host member functions set m_processingResource to true when they
        begin processing a resource and set it to false when they are done. Thanks to
        JavaScript and the web inspector, almost anything can happen during the
        processing of a resource, including these functions being called reentrantly,
        which is unsafe due to this way of using m_processingResource.

        This can theoretically cause a Loader::Host to be used after it is freed,
        because when Loader::servedPendingRequests() is called, it will free Hosts
        that have m_processingResource set to false.

        To fix this, we replace m_processingResource with m_numResourcesProcessing,
        which is incremented and decremented using a helper object, ProcessingResource.

        There are no occurrences of crashes caused by this bug that are reproducible
        by multiple people, but this fixes the problem of m_processingResource being
        set to false while a Host is still alive.

        * loader/loader.cpp:
        (WebCore::Loader::Host::Host):
        (WebCore::Loader::Host::didFinishLoading): Change to use ProcessingResource
        instead of manually setting m_processingResource.
        (WebCore::Loader::Host::didFail): Ditto.
        (WebCore::Loader::Host::didReceiveData): Ditto.
        * loader/loader.h:
        (WebCore::Loader::Host::ProcessingResource::ProcessingResource): Added.
        (WebCore::Loader::Host::ProcessingResource::~ProcessingResource): Added.
        (WebCore::Loader::Host::processingResource): Change to use m_numResourcesProcessing
        instead of just getting m_processingResource.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39494 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago Reviewed by Darin Adler.
ap@webkit.org [Sun, 28 Dec 2008 19:40:05 +0000 (19:40 +0000)]
    Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=23007
        REGRESSION: Timer-related crash when closing Web Inspector

        Test: fast/dom/Window/remove-timeout-crash.html

        * bindings/js/DOMTimer.cpp: (WebCore::DOMTimer::fired): Besides deleting the timer, make
        sure to remove it from a Document map.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39493 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago Reviewed by Anders Carlsson.
ap@webkit.org [Sun, 28 Dec 2008 17:19:00 +0000 (17:19 +0000)]
    Reviewed by Anders Carlsson.

        https://bugs.webkit.org/show_bug.cgi?id=23012
        Bring application cache manifest parsing up to date

        Test: http/tests/appcache/manifest-parsing.html

        * loader/appcache/ManifestParser.cpp:
        (WebCore::Mode): Added a constant for unknown sections, which are ignored when parsing. This
        is necessary for future extensions.
        (WebCore::parseManifest): Parse unknown sections correctly. Ignore trailing tokens in
        supported sections.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39492 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago Reviewed by Anders Carlsson.
ap@webkit.org [Sun, 28 Dec 2008 17:12:20 +0000 (17:12 +0000)]
    Reviewed by Anders Carlsson.

        https://bugs.webkit.org/show_bug.cgi?id=23009
        Add a test for application cache offline operation

        * http/tests/resources/network-simulator.php: A proxy script to simulate a network connection
        that can go offline, using an infinite redirect loop in offline mode to generate an error.

        * http/tests/appcache/offline-access-expected.txt: Added.
        * http/tests/appcache/offline-access.html: Added.
        * http/tests/appcache/resources/offline-access-frame.html: Added.
        * http/tests/appcache/resources/offline-access.js: Added.
        * http/tests/appcache/resources/offline-access.manifest: Added.
        Test that an application loads successfully from cache.

        * http/tests/resources: Added.
        * http/tests/resources/portabilityLayer.php: Copied from LayoutTests/http/tests/xmlhttprequest/resources/portabilityLayer.php.
        * http/tests/resources/reset-temp-file.php: Copied from LayoutTests/http/tests/xmlhttprequest/resources/reset-temp-file.php.
        * http/tests/xmlhttprequest/access-control-basic-allow-preflight-cache-invalidation-by-header.html:
        * http/tests/xmlhttprequest/access-control-basic-allow-preflight-cache-invalidation-by-method.html:
        * http/tests/xmlhttprequest/access-control-basic-allow-preflight-cache-timeout.html:
        * http/tests/xmlhttprequest/access-control-basic-allow-preflight-cache.html:
        * http/tests/xmlhttprequest/resources/access-control-basic-preflight-cache-invalidation.php:
        * http/tests/xmlhttprequest/resources/access-control-basic-preflight-cache-timeout.php:
        * http/tests/xmlhttprequest/resources/access-control-basic-preflight-cache.php:
        * http/tests/xmlhttprequest/resources/portabilityLayer.php: Removed.
        * http/tests/xmlhttprequest/resources/reset-temp-file.php: Removed.
        * http/tests/appcache/resources/fail-on-update.php:
        Moved some common scripts from xmlhttprequest/resources/ to resources/

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39491 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years agoReviewed by Darin Adler.
zimmermann@webkit.org [Sun, 28 Dec 2008 13:54:17 +0000 (13:54 +0000)]
Reviewed by Darin Adler.

Fixes: https://bugs.webkit.org/show_bug.cgi?id=22996

RenderTextControl heavily depends on HTMLInputElement & HTMLTextAreaElement.
It handles multi & single line text control rendering in one class. Split up
in two new classes: RenderTextControlSingleLine & RenderTextControlMultiLine.

This has several benefits - code is more readable now, the memory usage
for RenderTextControlMultiLine is reduced, as all stuff related to search fields
lives in RenderTextControlSingleLine, and it's easier to introduce an
abstraction for input/textarea-like elements for other HTML flavours like WML.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39490 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2008-12-28 Dmitry Titov <dimich@chromium.org>
ap@webkit.org [Sun, 28 Dec 2008 10:05:59 +0000 (10:05 +0000)]
2008-12-28  Dmitry Titov  <dimich@chromium.org>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=22755
        Prepare to add create/remove timeout methods to JSWorkerContext by moving
        timer-specific code from JSDOMWindowBase to DOMTimer.
        Moved everything JS-related from DOMTimer to ScheduledAction.
        Now ScheduledAction is what it wanted to be all the time: a JS engine-specific
        container for timer callback that knows how to invoke it.
        DOMTimer is not anymore JS-specific.

        This is mostly moving the code around. No intended functional changes.

        * bindings/js/DOMTimer.cpp:
        (WebCore::DOMTimer::DOMTimer):
        (WebCore::DOMTimer::~DOMTimer):
        (WebCore::DOMTimer::install):
        (WebCore::DOMTimer::removeById):
        (WebCore::DOMTimer::fired):
        (WebCore::DOMTimer::stop):
        * bindings/js/DOMTimer.h:
        * bindings/js/JSDOMWindowBase.cpp:
        (WebCore::JSDOMWindowBase::installTimeout):
        (WebCore::JSDOMWindowBase::removeTimeout):
        * bindings/js/JSDOMWindowBase.h:
        * bindings/js/ScheduledAction.cpp:
        (WebCore::ScheduledAction::execute):
        * bindings/js/ScheduledAction.h:
        * dom/Document.cpp:
        (WebCore::Document::addTimeout):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39489 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2008-12-28 Cameron Zwarich <cwzwarich@uwaterloo.ca>
cwzwarich@webkit.org [Sun, 28 Dec 2008 08:52:06 +0000 (08:52 +0000)]
2008-12-28  Cameron Zwarich  <cwzwarich@uwaterloo.ca>

        Reviewed by Oliver Hunt.

        Bug 22840: REGRESSION (r38349): Gmail doesn't load with profiling enabled
        <https://bugs.webkit.org/show_bug.cgi?id=22840>
        <rdar://problem/6468077>

        JavaScriptCore:

        * bytecompiler/BytecodeGenerator.cpp:
        (JSC::BytecodeGenerator::emitNewArray): Add an assertion that the range
        of registers passed to op_new_array is sequential.
        (JSC::BytecodeGenerator::emitCall): Correct the relocation of registers
        when emitting profiler hooks so that registers aren't leaked. Also, add
        an assertion that the 'this' register is always ref'd (because it is),
        remove the needless protection of the 'this' register when relocating,
        and add an assertion that the range of registers passed to op_call for
        function call arguments is sequential.
        (JSC::BytecodeGenerator::emitConstruct): Correct the relocation of
        registers when emitting profiler hooks so that registers aren't leaked.
        Also, add an assertion that the range of registers passed to op_construct
        for function call arguments is sequential.

        LayoutTests:

        * fast/profiler/call-register-leak-expected.txt: Added.
        * fast/profiler/call-register-leak.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39488 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago<rdar://problem/6467376> Race condition in WTF::currentThread can lead to a thread...
mrowe@apple.com [Sun, 28 Dec 2008 02:54:12 +0000 (02:54 +0000)]
<rdar://problem/6467376> Race condition in WTF::currentThread can lead to a thread using two different identifiers during its lifetime

If a newly-created thread calls WTF::currentThread() before WTF::createThread calls establishIdentifierForPthreadHandle
then more than one identifier will be used for the same thread.  We can avoid this by adding some extra synchronization
during thread creation that delays the execution of the thread function until the thread identifier has been set up, and
an assertion to catch this problem should it reappear in the future.

Reviewed by Alexey Proskuryakov.

* wtf/Threading.cpp: Added.
(WTF::NewThreadContext::NewThreadContext):
(WTF::threadEntryPoint):
(WTF::createThread): Add cross-platform createThread function that delays the execution of the thread function until
after the thread identifier has been set up.
* wtf/Threading.h:
* wtf/ThreadingGtk.cpp:
(WTF::establishIdentifierForThread):
(WTF::createThreadInternal):
* wtf/ThreadingNone.cpp:
(WTF::createThreadInternal):
* wtf/ThreadingPthreads.cpp:
(WTF::establishIdentifierForPthreadHandle):
(WTF::createThreadInternal):
* wtf/ThreadingQt.cpp:
(WTF::identifierByQthreadHandle):
(WTF::establishIdentifierForThread):
(WTF::createThreadInternal):
* wtf/ThreadingWin.cpp:
(WTF::storeThreadHandleByIdentifier):
(WTF::createThreadInternal):

Add Threading.cpp to the build.

* GNUmakefile.am:
* JavaScriptCore.pri:
* JavaScriptCore.scons:
* JavaScriptCore.vcproj/WTF/WTF.vcproj:
* JavaScriptCore.xcodeproj/project.pbxproj:
* JavaScriptCoreSources.bkl:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39487 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago Suggested by Dave Levin.
ap@webkit.org [Sat, 27 Dec 2008 08:30:00 +0000 (08:30 +0000)]
    Suggested by Dave Levin.

        https://bugs.webkit.org/show_bug.cgi?id=22950

        Another attempt to fix the failing XHR tests on Tiger buildbot: make file_put_contents
        portable implementation return a result.

        * http/tests/xmlhttprequest/resources/portabilityLayer.php:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39486 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2008-12-26 David Levin <levin@chromium.org>
ap@webkit.org [Fri, 26 Dec 2008 21:31:20 +0000 (21:31 +0000)]
2008-12-26  David Levin  <levin@chromium.org>

        Reviewed by Alexey Proskuryakov.

        https://bugs.webkit.org/show_bug.cgi?id=22950

        Remove ensureTrailingSlash from appcache test.

        * http/tests/appcache/resources/fail-on-update.php:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39485 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2008-12-26 Zalan Bujtas <zbujtas@gmail.com>
antti@apple.com [Fri, 26 Dec 2008 21:19:11 +0000 (21:19 +0000)]
2008-12-26  Zalan Bujtas  <zbujtas@gmail.com>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=22999
        Check if database thread exists.

        * storage/Database.cpp:
        (WebCore::Database::openAndVerifyVersion):
        (WebCore::Database::markAsDeletedAndClose):
        (WebCore::Database::tableNames):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39484 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2008-12-26 Sam Weinig <sam@webkit.org>
weinig@apple.com [Fri, 26 Dec 2008 21:01:11 +0000 (21:01 +0000)]
2008-12-26  Sam Weinig  <sam@webkit.org>

        Reviewed by Alexey Proskuryakov.

        Remove unused method.

        * runtime/Structure.h: Remove mutableTypeInfo.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39483 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2008-12-26 David Levin <levin@chromium.org>
ap@webkit.org [Fri, 26 Dec 2008 20:00:42 +0000 (20:00 +0000)]
2008-12-26  David Levin  <levin@chromium.org>

        Reviewed by Alexey Proskuryakov.

        https://bugs.webkit.org/show_bug.cgi?id=22950

        Attempt to fix the failiing XHR tests on tiger buildbot.
        Remove the no longer needed ensureTrailingSlash function.

        * http/tests/xmlhttprequest/resources/access-control-basic-preflight-cache-invalidation.php:
        * http/tests/xmlhttprequest/resources/access-control-basic-preflight-cache-timeout.php:
        * http/tests/xmlhttprequest/resources/access-control-basic-preflight-cache.php:

        * http/tests/xmlhttprequest/resources/portabilityLayer.php:
          Make sys_get_temp_dir() return "/tmp" when it can't find the temp directory through other means.

        * http/tests/xmlhttprequest/resources/reset-temp-file.php:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39482 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago Reviewed by Sam Weinig.
mitz@apple.com [Fri, 26 Dec 2008 19:54:23 +0000 (19:54 +0000)]
    Reviewed by Sam Weinig.

        - fix <rdar://problem/6467608> lastVisitWasFailure flag persists in
          global history after a successful visit

        * History/WebHistory.mm:
        (-[WebHistory _visitedURL:withTitle:wasFailure:]): Changed to always
        update the wasFailure flag on the HistoryItem.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39481 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago Reviewed by Anders Carlsson.
ap@webkit.org [Fri, 26 Dec 2008 19:05:30 +0000 (19:05 +0000)]
    Reviewed by Anders Carlsson.

        Fix a layout test that was broken by the previous appcache commit
        (it only passed every other time as a result).

        * http/tests/appcache/fail-on-update.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39480 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2008-12-26 Simon Fraser <simon.fraser@apple.com>
simon.fraser@apple.com [Fri, 26 Dec 2008 18:59:19 +0000 (18:59 +0000)]
2008-12-26  Simon Fraser  <simon.fraser@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=22981

        Update more svg-as-image test results affected by the fix
        for SVGImage drawing.

        * platform/mac/fast/borders/svg-as-border-image-2-expected.checksum:
        * platform/mac/fast/borders/svg-as-border-image-2-expected.png:
        * platform/mac/fast/borders/svg-as-border-image-expected.checksum:
        * platform/mac/fast/borders/svg-as-border-image-expected.png:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39479 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago Reviewed by Darin Adler.
ap@webkit.org [Fri, 26 Dec 2008 18:52:06 +0000 (18:52 +0000)]
    Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=23001
        A call to applicationCache.update() from a cached event listener should be ignored

        Test: http/tests/appcache/idempotent-update.html

        * loader/appcache/ApplicationCacheGroup.cpp:
        (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete): Only reset m_status after
        dispatching events.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39478 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago Reviewed by Darin Adler.
ap@webkit.org [Fri, 26 Dec 2008 17:40:09 +0000 (17:40 +0000)]
    Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=22997
        ASSERTION FAILED: !m_resources.contains(url) in ApplicationCache::addResource()

        Tests: http/tests/appcache/top-frame-1.html
               http/tests/appcache/top-frame-2.html
               http/tests/appcache/top-frame-3.html
               http/tests/appcache/top-frame-4.html

        * loader/appcache/ApplicationCacheGroup.cpp: (WebCore::ApplicationCacheGroup::cacheForMainRequest):
        Fixed one more instance of top level frame being used for caching purposes.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39477 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2008-12-26 David Levin <levin@chromium.org>
ap@webkit.org [Fri, 26 Dec 2008 11:03:56 +0000 (11:03 +0000)]
2008-12-26  David Levin  <levin@chromium.org>

        Reviewed by Alexey Proskuryakov.

        https://bugs.webkit.org/show_bug.cgi?id=22950
        Added more logging to reset-temp-file to help expose potential issues that could cause test failures (on the tiger buildbot).

        If there are issues in reset-temp-file, they are printed from the test access-control-basic-allow-preflight-cache.html

        * http/tests/xmlhttprequest/access-control-basic-allow-preflight-cache.html:
        * http/tests/xmlhttprequest/resources/reset-temp-file.php:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39476 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2008-12-26 Dmitry Titov <dimich@chromium.org>
ap@webkit.org [Fri, 26 Dec 2008 08:46:56 +0000 (08:46 +0000)]
2008-12-26  Dmitry Titov  <dimich@chromium.org>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=22987
        Fix for broken test editing/execCommand/5763082.html

        * editing/CompositeEditCommand.cpp:
        (WebCore::CompositeEditCommand::mergeIdenticalElements): Used local RefPtr to hold onto
        function parameter across multiple calls.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39475 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago Reviewed by Darin Adler.
ap@webkit.org [Thu, 25 Dec 2008 21:12:07 +0000 (21:12 +0000)]
    Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=22993
        Application cache shouldn't be inherited by subframes

        <rdar://problem/6284708> AppCache crashes in ApplicationCacheResource::addType()
        This crash happened because main resource for subframe was looked up in top frame's
        appcache. If not for the spec change, it could have been fixed by preventing the load
        altogether.

        Test: http/tests/appcache/foreign-iframe-main.html
        I intend to write additional tests for the behavior change.

        * loader/DocumentLoader.cpp:
        (WebCore::DocumentLoader::shouldLoadResourceFromApplicationCache):
        * loader/DocumentLoader.h:
        (WebCore::DocumentLoader::applicationCache):
        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::load):
        * loader/appcache/DOMApplicationCache.cpp:
        (WebCore::DOMApplicationCache::associatedCache):
        Removed DocumentLoader::topLevelApplicationCache(), and changed callers accordingly.

        * loader/appcache/ApplicationCacheGroup.cpp:
        (WebCore::ApplicationCacheGroup::selectCache):
        (WebCore::ApplicationCacheGroup::selectCacheWithoutManifestURL):
        Removed checks for the frame being top-level one, now that subframes are cached independently.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39474 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2008-12-25 Antti Koivisto <antti@apple.com>
antti@apple.com [Thu, 25 Dec 2008 14:18:34 +0000 (14:18 +0000)]
2008-12-25  Antti Koivisto  <antti@apple.com>

        Reviewed by Oliver Hunt.

        <rdar://problem/6465669> Frequent !isPurgeable() assertion in WebCore::CachedResource::addClient

        Disallow turning resources that are being revalidated to purgable state.

        No test, the condition is difficult to produce in DRT.

        * loader/CachedCSSStyleSheet.cpp:
        (WebCore::CachedCSSStyleSheet::allClientsRemoved):
        * loader/CachedImage.cpp:
        (WebCore::CachedImage::destroyDecodedData):
        * loader/CachedResource.cpp:
        (WebCore::CachedResource::isSafeToMakePurgeable):
        (WebCore::CachedResource::makePurgeable):
        * loader/CachedResource.h:
        * loader/CachedScript.cpp:
        (WebCore::CachedScript::destroyDecodedData):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39473 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago Qt build fix.
ap@webkit.org [Thu, 25 Dec 2008 10:55:13 +0000 (10:55 +0000)]
    Qt build fix.

        * WebCore.pro: Added ThreadGlobalData.cpp.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39472 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years agoMove the guts of determineCurrentSVNRevision to VCSUtils as svnRevisionForDirectory,
mrowe@apple.com [Thu, 25 Dec 2008 05:26:33 +0000 (05:26 +0000)]
Move the guts of determineCurrentSVNRevision to VCSUtils as svnRevisionForDirectory,
and make it work for git too.

Reviewed by Timothy Hatcher.

* Scripts/VCSUtils.pm:
* Scripts/webkitdirs.pm:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39471 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years agoBuild fix.
mrowe@apple.com [Thu, 25 Dec 2008 00:42:01 +0000 (00:42 +0000)]
Build fix.

* WebCore.base.exp:  Remove a symbol from the export file now that it is no longer generated.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39470 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2008-12-24 Simon Fraser <simon.fraser@apple.com>
simon.fraser@apple.com [Wed, 24 Dec 2008 21:39:44 +0000 (21:39 +0000)]
2008-12-24  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Oliver Hunt

        https://bugs.webkit.org/show_bug.cgi?id=21910

        Update more svg-as-image test results affected by the fix
        for SVGImage drawing.

        * platform/mac/fast/images/svg-as-background-expected.checksum:
        * platform/mac/fast/images/svg-as-background-expected.png:
        * platform/mac/fast/images/svg-as-image-expected.checksum:
        * platform/mac/fast/images/svg-as-image-expected.png:
        * platform/mac/fast/images/svg-as-relative-image-expected.checksum:
        * platform/mac/fast/images/svg-as-relative-image-expected.png:
        * transforms/2d/compound-transforms-vs-containers.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39469 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years agoFix a typo in ChangeLog.
ap@webkit.org [Wed, 24 Dec 2008 18:08:05 +0000 (18:08 +0000)]
Fix a typo in ChangeLog.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39468 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago Reviewed by Dan Bernstein.
ap@webkit.org [Wed, 24 Dec 2008 18:06:45 +0000 (18:06 +0000)]
    Reviewed by Dan Bernstein.

        https://bugs.webkit.org/show_bug.cgi?id=22982
        http/tests/navigation/post-goback-repost-policy.html fails on Tiger

        Change resources that are accessed with POST form .html to .php. I don't know why Apache 2.0
        had no problem with this.

        * http/tests/navigation/post-goback-repost-policy.html:
        * http/tests/navigation/resources/goback-with-policydelegate.html: Removed.
        * http/tests/navigation/resources/goback-with-policydelegate.php: Copied from LayoutTests/http/tests/navigation/resources/goback-with-policydelegate.html.
        * http/tests/navigation/resources/post-target-policy-test.html: Removed.
        * http/tests/navigation/resources/post-target-policy-test.php: Copied from LayoutTests/http/tests/navigation/resources/post-target-policy-test.html.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39467 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years agoUnreviewed build fix to find addSubresourceURL
zecke@webkit.org [Wed, 24 Dec 2008 12:44:27 +0000 (12:44 +0000)]
Unreviewed build fix to find addSubresourceURL

This is needed to compile on WebKit/Gtk+

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39466 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago Reviewed by Darin Adler.
ap@webkit.org [Wed, 24 Dec 2008 07:46:04 +0000 (07:46 +0000)]
    Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=22980
        WebCore uses more thread specific keys than it really needs

        Consolidated ThreadSpecific data into a single ThreadGlobalData structure.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39465 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years agoBuild fix.
mrowe@apple.com [Wed, 24 Dec 2008 06:12:12 +0000 (06:12 +0000)]
Build fix.

* WebCore.xcodeproj/project.pbxproj: CSSPropertyNames.h is a generated file so it needs to be explicitly copied
into the PrivateHeaders directory, rather than relying on the automatic copying of headers which runs before the
derived sources are generated.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39464 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2008-12-23 Simon Fraser <simon.fraser@apple.com>
simon.fraser@apple.com [Wed, 24 Dec 2008 05:23:36 +0000 (05:23 +0000)]
2008-12-23  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Dan Bernstein

        https://bugs.webkit.org/show_bug.cgi?id=22941

        If the document element has opacity, we need to erase the view background to
        white before painting.

        Test: fast/backgrounds/opacity-on-document-element.html

        * rendering/RenderView.cpp:
        (WebCore::rendererObscuresBackground):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39463 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2008-12-23 Simon Fraser <simon.fraser@apple.com>
simon.fraser@apple.com [Wed, 24 Dec 2008 05:19:54 +0000 (05:19 +0000)]
2008-12-23  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Dan Bernstein

        https://bugs.webkit.org/show_bug.cgi?id=21910

        Fix SVGImage painting by ensuring that the SVGImage resizes its FrameView correctly.
        Otherwise the FrameView is left at 0x0, and nothing paints.

        * svg/graphics/SVGImage.cpp:
        (WebCore::SVGImage::draw):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39462 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years agoVersioning.
mrowe@apple.com [Wed, 24 Dec 2008 03:51:57 +0000 (03:51 +0000)]
Versioning.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39458 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2008-12-23 Darin Adler <darin@apple.com>
darin@apple.com [Tue, 23 Dec 2008 21:42:46 +0000 (21:42 +0000)]
2008-12-23  Darin Adler  <darin@apple.com>

        Reviewed by John Sullivan.

        - improve robustness of undo/redo in HTML editing to fix the following bugs
          <https://bugs.webkit.org/show_bug.cgi?id=19703> Crash in WebCore::InsertNodeBeforeCommand::doUnapply()
          <rdar://problem/4059423> DOM operations performed on editable HTML can cause a crash later during Undo

        Major categories of improvements:

            1) Added null checks.
            2) Eliminated type casts without corresponding type checks.
            3) Avoided possible infinite loops by building up lists of nodes to operate on
               before starting to make DOM changes.
            4) Use more RefPtr.

        No test at this time, but test cases should follow in separate patches.

        * WebCore.xcodeproj/project.pbxproj: Set the role of CSSPropertyNames.h to Private so it
        can be used in other Private headers, specifically editing ones.

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::locateCousinList): Adopt parentElement.
        (WebCore::CSSStyleSelector::locateSharedStyle): Ditto.
        (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector): Ditto.

        * dom/Element.cpp: (WebCore::Element::cloneElement): Added.
        * dom/Element.h: Added cloneElement and an implementation of parentElement.
        * dom/Node.h: Moved parentElement from here to Element.h and changed its
        implementation so it will return 0 when the parent is not an element
        (document, document fragment, etc.).

        * editing/AppendNodeCommand.cpp:
        (WebCore::AppendNodeCommand::AppendNodeCommand): Made parent be an Element.
        Moved assertions from doApply in here.
        (WebCore::AppendNodeCommand::doApply): Simplified to just a single unchecked
        appendChild call.
        (WebCore::AppendNodeCommand::doUnapply): Simplified to just a single remove call.
        * editing/AppendNodeCommand.h: Updated.

        * editing/ApplyStyleCommand.cpp:
        (WebCore::createStyleSpanElement): Eliminate casting by creating an element in a more
        direct way with new instead of createElementNS.
        (WebCore::ApplyStyleCommand::ApplyStyleCommand): Use PassRefPtr.
        (WebCore::ApplyStyleCommand::removeCSSStyle): Use CSSPropertyID.
        (WebCore::ApplyStyleCommand::addInlineStyleIfNeeded): Use cloneElement.
        * editing/ApplyStyleCommand.h:

        * editing/BreakBlockquoteCommand.cpp:
        (WebCore::BreakBlockquoteCommand::doApply): Use Element* and cloneElement.

        * editing/CompositeEditCommand.cpp:
        (WebCore::CompositeEditCommand::applyStyledElement): Use PassRefPtr and unsigned.
        (WebCore::CompositeEditCommand::removeStyledElement): Ditto.
        (WebCore::CompositeEditCommand::insertNodeBefore): Ditto.
        (WebCore::CompositeEditCommand::insertNodeAfter): Ditto.
        (WebCore::CompositeEditCommand::insertNodeAt): Ditto.
        (WebCore::CompositeEditCommand::appendNode): Ditto.
        (WebCore::CompositeEditCommand::removeChildrenInRange): Ditto. Also use a vector to
        make the list of children in case removing them has side effects.
        (WebCore::CompositeEditCommand::removeNode): Ditto.
        (WebCore::CompositeEditCommand::removeNodePreservingChildren): Ditto.
        (WebCore::CompositeEditCommand::removeNodeAndPruneAncestors): Ditto.
        (WebCore::CompositeEditCommand::splitTextNode): Ditto.
        (WebCore::CompositeEditCommand::splitElement): Ditto.
        (WebCore::CompositeEditCommand::mergeIdenticalElements): Ditto.
        (WebCore::CompositeEditCommand::wrapContentsInDummySpan): Ditto.
        (WebCore::CompositeEditCommand::splitTextNodeContainingElement): Ditto.
        (WebCore::CompositeEditCommand::joinTextNodes): Ditto.
        (WebCore::CompositeEditCommand::inputText): Ditto.
        (WebCore::CompositeEditCommand::insertTextIntoNode): Ditto.
        (WebCore::CompositeEditCommand::deleteTextFromNode): Ditto.
        (WebCore::CompositeEditCommand::replaceTextInNode): Ditto.
        (WebCore::CompositeEditCommand::insertNodeAtTabSpanPosition): Ditto.
        (WebCore::CompositeEditCommand::removeCSSProperty): Ditto.
        (WebCore::CompositeEditCommand::removeNodeAttribute): Ditto. Implement by calling
        setNodeAttribute instead of with its own SimpleEditCommand.
        (WebCore::CompositeEditCommand::setNodeAttribute): Ditto.
        (WebCore::CompositeEditCommand::deleteInsignificantText): Ditto.
        (WebCore::CompositeEditCommand::appendBlockPlaceholder): Ditto.
        (WebCore::CompositeEditCommand::addBlockPlaceholderIfNeeded): Ditto.
        (WebCore::CompositeEditCommand::insertNewDefaultParagraphElementAt): Ditto. Don't
        bother using an undoable operation to put the break element into the paragraph
        element because there's no need to split them and redo this when doing undo/redo.
        (WebCore::CompositeEditCommand::moveParagraphs): Ditto.
        (WebCore::CompositeEditCommand::breakOutOfEmptyListItem): Ditto.
        * editing/CompositeEditCommand.h: Ditto.

        * editing/DeleteFromTextNodeCommand.cpp:
        (WebCore::DeleteFromTextNodeCommand::DeleteFromTextNodeCommand): Use unsigned.
        (WebCore::DeleteFromTextNodeCommand::doApply): Eliminated inappropriate assertions.
        (WebCore::DeleteFromTextNodeCommand::doUnapply): Ditto.
        * editing/DeleteFromTextNodeCommand.h:

        * editing/DeleteSelectionCommand.cpp:
        (WebCore::DeleteSelectionCommand::removeNode): Use PassRefPtr.
        (WebCore::DeleteSelectionCommand::deleteTextFromNode): Ditto.
        * editing/DeleteSelectionCommand.h:

        * editing/FormatBlockCommand.cpp:
        (WebCore::FormatBlockCommand::FormatBlockCommand): Use AtomicString.
        (WebCore::FormatBlockCommand::doApply): Use Element.
        * editing/FormatBlockCommand.h:

        * editing/IndentOutdentCommand.cpp:
        (WebCore::createIndentBlockquoteElement): Use new to create the element
        instead of calling a function so we have a more specific type.
        (WebCore::IndentOutdentCommand::prepareBlockquoteLevelForInsertion):
        Use RefPtr and Element.
        (WebCore::IndentOutdentCommand::indentRegion): Ditto.
        (WebCore::IndentOutdentCommand::outdentParagraph): Ditto.
        * editing/IndentOutdentCommand.h:

        * editing/InsertIntoTextNodeCommand.cpp:
        (WebCore::InsertIntoTextNodeCommand::InsertIntoTextNodeCommand):
        Use unsigned. Added an assertion.
        (WebCore::InsertIntoTextNodeCommand::doApply): Eliminated inappropriate assertions.
        (WebCore::InsertIntoTextNodeCommand::doUnapply): Ditto.
        * editing/InsertIntoTextNodeCommand.h:

        * editing/InsertLineBreakCommand.cpp:
        (WebCore::InsertLineBreakCommand::insertNodeAfterPosition): Use Element.
        (WebCore::InsertLineBreakCommand::insertNodeBeforePosition): Ditto.

        * editing/InsertListCommand.cpp:
        (WebCore::InsertListCommand::doApply): Use Element.

        * editing/InsertNodeBeforeCommand.cpp:
        (WebCore::InsertNodeBeforeCommand::InsertNodeBeforeCommand): Moved assertions
        here from doApply.
        (WebCore::InsertNodeBeforeCommand::doApply): Eliminated inappropriate assertions.
        Added a null check.
        (WebCore::InsertNodeBeforeCommand::doUnapply): Simplified to just a single remove call.

        * editing/InsertParagraphSeparatorCommand.cpp:
        (WebCore::InsertParagraphSeparatorCommand::doApply): Use Element and cloneElement.

        * editing/JoinTextNodesCommand.cpp:
        (WebCore::JoinTextNodesCommand::doApply): Eliminated inappropriate assertions.
        Added some runtime checks. Don't store anything in m_offset.
        (WebCore::JoinTextNodesCommand::doUnapply): Ditto.
        * editing/JoinTextNodesCommand.h:

        * editing/MergeIdenticalElementsCommand.cpp:
        (WebCore::MergeIdenticalElementsCommand::MergeIdenticalElementsCommand): Moved
        an assertion here from doApply.
        (WebCore::MergeIdenticalElementsCommand::doApply): Eliminated inappropriate assertions.
        Added a null check. Changed implementation to use remove to avoid null parent issue.
        Use a vector of nodes to avoid possible infinite loop if mutation happens while iterating.
        (WebCore::MergeIdenticalElementsCommand::doUnapply): Ditto.

        * editing/ModifySelectionListLevel.cpp:
        (WebCore::ModifySelectionListLevelCommand::appendSiblingNodeRange): Use Element*.
        (WebCore::IncreaseSelectionListLevelCommand::doApply): Ditto.
        * editing/ModifySelectionListLevel.h:

        * editing/RemoveCSSPropertyCommand.cpp:
        (WebCore::RemoveCSSPropertyCommand::RemoveCSSPropertyCommand): Use PassRefPtr and
        CSSPropertyID. Also renamed m_decl to m_style.
        (WebCore::RemoveCSSPropertyCommand::doApply): Eliminated inappropriate assertions.
        (WebCore::RemoveCSSPropertyCommand::doUnapply): Ditto.

        * editing/RemoveNodeAttributeCommand.cpp: Removed contents of this file. To be deleted.
        Use SetNodeAttributeCommand instead.
        * editing/RemoveNodeAttributeCommand.h: Ditto.

        * editing/RemoveNodeCommand.cpp:
        (WebCore::RemoveNodeCommand::RemoveNodeCommand): Moved assertions here from doApply.
        Don't initialize m_refChild here; rather do it in doApply.
        (WebCore::RemoveNodeCommand::doApply): Eliminated inappropriate assertions. Added
        checks and streamlined implementation.
        (WebCore::RemoveNodeCommand::doUnapply): Ditto.
        * editing/RemoveNodeCommand.h:

        * editing/RemoveNodePreservingChildrenCommand.cpp:
        (WebCore::RemoveNodePreservingChildrenCommand::doApply): Use a vector.

        * editing/ReplaceSelectionCommand.cpp:
        (WebCore::ReplacementFragment::insertFragmentForTestRendering): Removed now-unneeded cast.

        * editing/SetNodeAttributeCommand.cpp:
        (WebCore::SetNodeAttributeCommand::SetNodeAttributeCommand): Use AtomicString.
        Removed assertion that prevents us from using this to remove an attribute.
        (WebCore::SetNodeAttributeCommand::doApply): Eliminated inappropriate assertions.
        (WebCore::SetNodeAttributeCommand::doUnapply): Ditto.
        * editing/SetNodeAttributeCommand.h:

        * editing/SplitElementCommand.cpp:
        (WebCore::SplitElementCommand::SplitElementCommand): Moved assertion here from doApply.
        (WebCore::SplitElementCommand::doApply): Check some more invariants and use a vector
        to avoid possible infinite loops.
        (WebCore::SplitElementCommand::doUnapply): Ditto.

        * editing/SplitTextNodeCommand.cpp:
        (WebCore::SplitTextNodeCommand::SplitTextNodeCommand): Moved assertions and comment
        here from doApply.
        (WebCore::SplitTextNodeCommand::doApply): Check for null and failures when applying.
        (WebCore::SplitTextNodeCommand::doUnapply): Ditto.

        * editing/SplitTextNodeContainingElementCommand.cpp:
        (WebCore::SplitTextNodeContainingElementCommand::doApply): Use Element.

        * editing/WrapContentsInDummySpanCommand.cpp:
        (WebCore::WrapContentsInDummySpanCommand::doApply): Check for null and ignore failures.
        Don't reuse the dummy span. Simplified logic.
        (WebCore::WrapContentsInDummySpanCommand::doUnapply): Ditto.

        * editing/htmlediting.cpp:
        (WebCore::isBlock): Make sure this returns true only for elements.
        (WebCore::enclosingBlock): Return an Element*.
        (WebCore::enclosingTableCell): Ditto.
        (WebCore::enclosingList): Return an HTMLElement*.
        (WebCore::outermostEnclosingList): Return an HTMLElement*.
        (WebCore::createDefaultParagraphElement): Return an HTMLElement*.
        (WebCore::createBreakElement): Return an HTMLElement*.
        (WebCore::createOrderedListElement): Return an HTMLElement*.
        (WebCore::createUnorderedListElement): Return an HTMLElement*.
        (WebCore::createListItemElement): Return an HTMLElement*.
        (WebCore::createHTMLElement): Return an HTMLElement*.
        * editing/htmlediting.h:

        * editing/markup.cpp:
        (WebCore::createFragmentFromText): Use createBreakElement and use Element*.

        * page/MouseEventWithHitTestResults.cpp:
        (WebCore::MouseEventWithHitTestResults::targetNode): Use parentElement.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39456 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years agoWebKit:
darin@apple.com [Tue, 23 Dec 2008 21:40:36 +0000 (21:40 +0000)]
WebKit:

2008-12-23  Darin Adler  <darin@apple.com>

        Reviewed by Alexey Proskuryakov.

        - fix https://bugs.webkit.org/show_bug.cgi?id=22976
          crash due to Mail's use of WebArchive and WebResource on non-main thread

        * StringsNotToBeLocalized.txt: Updated.

        * WebKit.xcodeproj/project.pbxproj: Added new file WebNSObjectExtras.mm and
        existing file WebResourceInternal.h.

WebKit/mac:

2008-12-23  Darin Adler  <darin@apple.com>

        Reviewed by Alexey Proskuryakov (a slightly earlier version).

        - fix https://bugs.webkit.org/show_bug.cgi?id=22976
          crash due to Mail's use of WebArchive and WebResource on non-main thread

        * Misc/WebKitLogging.h: Improved comments for ASSERT_MAIN_THREAD. Got rid of
        WebKitRunningOnMainThread function, which was just a cover for pthread_main_np.
        * Misc/WebKitLogging.m: Ditto.

        * Misc/WebKitVersionChecks.h: Added a version after which we won't do the
        main thread workaround.

        * Misc/WebNSObjectExtras.h: Added a new method, _webkit_getPropertyOnMainThread:,
        which performs a selector on the main thread, waits for it to complete, and then
        returns the value on the caller thread.
        * Misc/WebNSObjectExtras.mm: Added.

        * WebView/WebArchive.mm:
        (-[WebArchive init]): Added WebCoreThreadViolationCheck.
        (-[WebArchive initWithMainResource:subresources:subframeArchives:]): Perform
        initialization on main thread if needMailThreadWorkaround is true.
        Also added WebCoreThreadViolationCheck.
        (-[WebArchive initWithData:]): Added WebCoreThreadViolationCheck.
        (-[WebArchive mainResource]): Get property on main thread if
        needMailThreadWorkaround is true. Also added WebCoreThreadViolationCheck.
        (-[WebArchive subresources]): Ditto.
        (-[WebArchive subframeArchives]): Ditto.
        (-[WebArchive data]): Ditto.
        (-[WebArchive _initWithCoreLegacyWebArchive:]): Added WebCoreThreadViolationCheck.
        (-[WebArchive _coreLegacyWebArchive]): Ditto.
        (-[WebArchive _initWithArguments:]): Added. Used to implement the cross-thread
        version of initWithMainResource above.

        * WebView/WebResource.mm:
        (-[WebResource initWithCoder:]): Added WebCoreThreadViolationCheck.
        (-[WebResource data]): Get property on main thread if
        needMailThreadWorkaround is true. Also added WebCoreThreadViolationCheck.
        (-[WebResource URL]): Ditto.
        (-[WebResource MIMEType]): Ditto.
        (-[WebResource textEncodingName]): Ditto.
        (-[WebResource frameName]): Ditto.
        (-[WebResource _ignoreWhenUnarchiving]): Ditto.
        (-[WebResource _initWithData:URL:MIMEType:textEncodingName:frameName:response:copyData:]):
        Perform initialization on main thread if needMailThreadWorkaround is true.
        Also added WebCoreThreadViolationCheck.
        (-[WebResource _suggestedFilename]): Added. Helper for _fileWrapperRepresentation.
        (-[WebResource _fileWrapperRepresentation]): Rewrote to use methods instead of
        getting at coreResource directly.
        (-[WebResource _response]): Get property on main thread if
        needMailThreadWorkaround is true. Also added WebCoreThreadViolationCheck.
        (-[WebResource _stringValue]): Ditto.
        (+[WebResource _needMailThreadWorkaroundIfCalledOffMainThread]): Added.
        (-[WebResource _initWithArguments:]): Added. Used to implement the cross-thread
        version of _initWithData above.

        * WebView/WebResourceInternal.h: Changed to include WebResourcePrivate.h since internal
        clients have access to the SPI as well as the API. Added definition of MAIL_THREAD_WORKAROUND
        and the needMainThreadWorkaround helper function.

        * Misc/WebIconDatabase.mm: Removed include of now-defunct FoundationExtras.h
        file. This probably fixes clean builds.
        * WebCoreSupport/WebIconDatabaseClient.mm: Ditto.

        * WebCoreSupport/WebFrameLoaderClient.mm: Removed include of WebResourcePrivate.h,
        since it's not actually used.
        * WebView/WebDataSource.mm: Ditto.
        * WebView/WebHTMLRepresentation.mm: Ditto.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39455 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2008-12-23 Darin Adler <darin@apple.com>
darin@apple.com [Tue, 23 Dec 2008 20:28:37 +0000 (20:28 +0000)]
2008-12-23  Darin Adler  <darin@apple.com>

        Reviewed by Dan Bernstein.

        * dom/Node.h: Tweak comments and order of bits that Sam moved
        here last night.
        * dom/Node.cpp: Ditto.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39454 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years agoWebCore:
jchaffraix@webkit.org [Tue, 23 Dec 2008 19:01:12 +0000 (19:01 +0000)]
WebCore:

2008-12-22  Julien Chaffraix  <jchaffraix@webkit.org>

        Reviewed by Darin Adler.

        Bug 11106: Some XMLHttpRequest URI resolving tests fail
        https://bugs.webkit.org/show_bug.cgi?id=11106

        Use the ScriptExecutionContext to resolve the URI when calling open in JavaScript.
        The previous code was using the containing DOMWindow to do so which would fail for
        XMLHttpRequest object being passed between iframe.

        Tests: http/tests/xmlhttprequest/uri-resolution-opera-open-004.html
               http/tests/xmlhttprequest/uri-resolution-opera-open-005.html
               http/tests/xmlhttprequest/uri-resolution-opera-open-006.html
               http/tests/xmlhttprequest/uri-resolution-opera-open-007.html
               http/tests/xmlhttprequest/uri-resolution-opera-open-008.html
               http/tests/xmlhttprequest/uri-resolution-opera-open-009.html
               http/tests/xmlhttprequest/uri-resolution-opera-open-010.html

        * bindings/js/JSXMLHttpRequestCustom.cpp:
        (WebCore::JSXMLHttpRequest::open): Use the ScriptExecutionContext
        to resolve the URL.

        * dom/Document.cpp:
        (WebCore::Document::virtualCompleteURL): Virtual method added to
        avoid performance hit on completeURL call.

        * dom/Document.h:
        * dom/ScriptExecutionContext.h:
        (WebCore::ScriptExecutionContext::completeURL): Non-virtual method
        that wrap the call to the virtual call.
        * dom/WorkerContext.cpp:
        (WebCore::WorkerContext::virtualCompleteURL): Pure virtual method.
        * dom/WorkerContext.h:

LayoutTests:

2008-12-22  Julien Chaffraix  <jchaffraix@webkit.org>

        Reviewed by Darin Adler.

        Test case for bug 11106: Some XMLHttpRequest URI resolving tests fail
        https://bugs.webkit.org/show_bug.cgi?id=11106

        These tests are borrowed from Opera's test case suite (http://tc.labs.opera.com/apis/XMLHttpRequest).
        They correspond to open/004.html - open/010.html which were previously failing.

        * http/tests/xmlhttprequest/resources/test-uri-resolution.txt: Added.
        * http/tests/xmlhttprequest/resources/uri-resolution-opera-open-004-iframe.html: Added.
        * http/tests/xmlhttprequest/resources/uri-resolution-opera-open-005-iframe.html: Added.
        * http/tests/xmlhttprequest/resources/uri-resolution-opera-open-006-iframe.html: Added.
        * http/tests/xmlhttprequest/resources/uri-resolution-opera-open-007-iframe.html: Added.
        * http/tests/xmlhttprequest/resources/uri-resolution-opera-open-008-iframe.html: Added.
        * http/tests/xmlhttprequest/resources/uri-resolution-opera-open-009-iframe.html: Added.
        * http/tests/xmlhttprequest/resources/uri-resolution-opera-open-010-iframe.html: Added.
        * http/tests/xmlhttprequest/test-uri-resolution.txt: Added.
        * http/tests/xmlhttprequest/uri-resolution-opera-open-004-expected.txt: Added.
        * http/tests/xmlhttprequest/uri-resolution-opera-open-004.html: Added.
        * http/tests/xmlhttprequest/uri-resolution-opera-open-005-expected.txt: Added.
        * http/tests/xmlhttprequest/uri-resolution-opera-open-005.html: Added.
        * http/tests/xmlhttprequest/uri-resolution-opera-open-006-expected.txt: Added.
        * http/tests/xmlhttprequest/uri-resolution-opera-open-006.html: Added.
        * http/tests/xmlhttprequest/uri-resolution-opera-open-007-expected.txt: Added.
        * http/tests/xmlhttprequest/uri-resolution-opera-open-007.html: Added.
        * http/tests/xmlhttprequest/uri-resolution-opera-open-008-expected.txt: Added.
        * http/tests/xmlhttprequest/uri-resolution-opera-open-008.html: Added.
        * http/tests/xmlhttprequest/uri-resolution-opera-open-009-expected.txt: Added.
        * http/tests/xmlhttprequest/uri-resolution-opera-open-009.html: Added.
        * http/tests/xmlhttprequest/uri-resolution-opera-open-010-expected.txt: Added.
        * http/tests/xmlhttprequest/uri-resolution-opera-open-010.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39453 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2008-12-23 Darin Adler <darin@apple.com>
darin@apple.com [Tue, 23 Dec 2008 17:25:30 +0000 (17:25 +0000)]
2008-12-23  Darin Adler  <darin@apple.com>

        Reviewed by Dan Bernstein.

        - fix https://bugs.webkit.org/show_bug.cgi?id=22979
          crash seen in -[WebView drawsBackground] when quitting
          <rdar://problem/6464601>

        * WebView/WebView.mm:
        (-[WebView drawsBackground]): Added comment and a null check for _private.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39452 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2008-12-23 Darin Adler <darin@apple.com>
darin@apple.com [Tue, 23 Dec 2008 17:22:10 +0000 (17:22 +0000)]
2008-12-23  Darin Adler  <darin@apple.com>

        Reviewed by Dan Bernstein.

        - https://bugs.webkit.org/show_bug.cgi?id=22978
          a couple tweaks to the new strokeBoundingRect functions

        * platform/graphics/cairo/PathCairo.cpp:
        (WebCore::Path::strokeBoundingRect): Only create a GraphicsContext
        if the applier is non-null.

        * platform/graphics/cg/PathCG.cpp:
        (WebCore::putBytesNowhere): Added.
        (WebCore::createScratchContext): Changed to use a "/dev/null" type
        function to discard bytes rather than using a data object. This
        eliminates the possibility that memory will be used if someone draws
        into the scratch context by accident. Also moved to the top of the
        file; it was in a slightly strange place before.
        (WebCore::Path::strokeBoundingRect): Only create a GraphicsContext
        if the applier is non-null. Simplify the empty path special case.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39451 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11 years ago2008-12-22 Gavin Barraclough <barraclough@apple.com>
barraclough@apple.com [Tue, 23 Dec 2008 07:08:59 +0000 (07:08 +0000)]
2008-12-22  Gavin Barraclough  <barraclough@apple.com>

        Reviewed by Oliver Hunt.

        Fix rounding / bounds / signed comparison bug in ExecutableAllocator.

        ExecutableAllocator::alloc assumed that m_freePtr would be aligned.  This was
        not always true, since the first allocation from an additional pool would not
        be rounded up.  Subsequent allocations would be unaligned, and too much memory
        could be erroneously allocated from the pool, when the size requested was
        available, but the size rounded up to word granularity was not available in the
        pool.  This may result in the value of m_freePtr being greater than m_end.

        Under these circumstances, the unsigned check for space will always pass,
        resulting in pointers to memory outside of the arena being returned, and
        ultimately segfaulty goodness when attempting to memcpy the hot freshly jitted
        code from the AssemblerBuffer.

        https://bugs.webkit.org/show_bug.cgi?id=22974
        ... and probably many, many more.

        * jit/ExecutableAllocator.h:
        (JSC::ExecutablePool::alloc):
        (JSC::ExecutablePool::roundUpAllocationSize):
        (JSC::ExecutablePool::ExecutablePool):
        (JSC::ExecutablePool::poolAllocate):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@39450 268f45cc-cd09-0410-ab3c-d52691b4dbfc