⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



Nov 11, 2007:

10:44 PM Changeset in webkit [27710] by Adam Roben
  • 4 edits in trunk/JavaScriptCore

Fix <rdar://5578982> ASSERT in HashTable::checkTableConsistencyExceptSize beneath WebNotificationCenter

The bug was due to a mismatch between HashMap::remove and
HashTable::checkTableConsistency. HashMap::remove can delete the value
stored in the HashTable (by derefing it), which is not normally
allowed by HashTable. It's OK in this case because the value is about
to be removed from the table, but HashTable wasn't aware of this.

HashMap::remove now performs the consistency check itself before
derefing the value.

Darin noticed that the same bug would occur in HashSet, so I've fixed
it there as well.

Reviewed by Darin.

  • wtf/HashMap.h: (WTF::HashMap::remove): Perform the HashTable consistency check manually before calling deref.
  • wtf/HashSet.h: (WTF::HashSet::remove): Ditto.
  • wtf/HashTable.h: Made checkTableConsistency public so that HashMap and HashSet can call it. (WTF::HashTable::removeAndInvalidateWithoutEntryConsistencyCheck): Added. (WTF::HashTable::removeAndInvalidate): Added. (WTF::HashTable::remove): (WTF::HashTable::removeWithoutEntryConsistencyCheck): Added.
10:16 PM Changeset in webkit [27709] by mrowe@apple.com
  • 2 edits in trunk/JavaScriptCore

Roll out r27708 as it breaks the Mac PowerPC build.

10:00 PM Changeset in webkit [27708] by mrowe@apple.com
  • 2 edits in trunk/JavaScriptCore

2007-11-11 Mike Hommey <mh+webkit@glandium.org>

Reviewed by Maciej.

Fix http://bugs.webkit.org/show_bug.cgi?id=14521
Bug 14521: JavaScriptCore fails to build on Linux/PPC gcc 4.1.2

  • wtf/TCSpinLock.h: (TCMalloc_SpinLock::Unlock): Change constraint from o to m.
9:54 PM Changeset in webkit [27707] by mrowe@apple.com
  • 5 edits in trunk/WebCore

2007-11-11 Justin Haygood <jhaygood@reaktix.com>

Reviewed by Adam Roben.

http://bugs.webkit.org/show_bug.cgi?id=15939
Adds a currentThread API for use by SQLiteDatabase, etc.

  • platform/Threading.h:
  • platform/ThreadingNone.cpp: (WebCore::currentThread):
  • platform/gtk/ThreadingGtk.cpp: (WebCore::identifierByGthreadHandle): (WebCore::):
  • platform/pthreads/ThreadingPthreads.cpp: (WebCore::identifierByPthreadHandle): (WebCore::currentThread):
9:40 PM Changeset in webkit [27706] by mitz@apple.com
  • 3 edits
    2 adds in trunk

WebCore:

Reviewed by Adam Roben.

Test: editing/selection/cleared-by-relayout.html

  • editing/Selection.cpp: (WebCore::Selection::toRange): Check if the selection has been cleared by updating layout.

LayoutTests:

Reviewed by Adam Roben.

  • editing/selection/cleared-by-relayout-expected.txt: Added.
  • editing/selection/cleared-by-relayout.html: Added.
8:51 PM Changeset in webkit [27705] by Darin Adler
  • 3 edits in trunk/WebCore

Reviewed by Mark Rowe.

  • fix line numbers that were off since my recent patch
  • platform/SegmentedString.h: (WebCore::SegmentedSubstring::SegmentedSubstring): Reversed the sense of m_excludeLineNumbers and rename it to m_doNotExcludeLineNumbers. (WebCore::SegmentedSubstring::excludeLineNumbers): Updated. (WebCore::SegmentedSubstring::doNotExcludeLineNumbers): Added. (WebCore::SegmentedSubstring::setExcludeLineNumbers): Updated. (WebCore::SegmentedString::advance): Use doNotExcludeLineNumbers to reverse the sense and fix the regression, but keep the speediness. I accidentally had removed a ! here.
  • platform/SegmentedString.cpp: (WebCore::SegmentedString::advanceSlowCase): Use doNotExcludeLineNumbers.
8:48 PM Changeset in webkit [27704] by oliver
  • 2 edits in trunk/WebCore

Fix for <rdar://problem/5585334>

Reviewed by Darin.

Fix for <rdar://problem/5585334> numfuzz: integer overflows opening
malformed SVG file in WebCore::ImageBuffer::create. Add protection
against a potential overflow.

8:37 PM Changeset in webkit [27703] by mrowe@apple.com
  • 2 edits in trunk/JavaScriptCore

2007-11-11 Mark Rowe <mrowe@apple.com>

Build fix. Use the correct filename case.

  • kjs/nodes.h:
8:27 PM Changeset in webkit [27702] by ggaren@apple.com
  • 8 edits in trunk/JavaScriptCore

Reviewed by Sam Weinig.


Fixed http://bugs.webkit.org/show_bug.cgi?id=15902
15% of string-validate-input.js is spent compiling the same regular expression


Store a compiled representation of the regular expression in the AST.


Only a .2% SunSpider speedup overall, but a 10.6% speedup on
string-validate-input.js.

  • kjs/nodes.cpp: (KJS::RegExpNode::evaluate):
  • kjs/nodes.h: (KJS::RegExpNode::):
  • kjs/nodes2string.cpp: (KJS::RegExpNode::streamTo):
  • kjs/regexp.cpp: (KJS::RegExp::flags):
  • kjs/regexp.h: (KJS::RegExp::pattern):
  • kjs/regexp_object.cpp: (KJS::RegExpObjectImp::construct): (KJS::RegExpObjectImp::createRegExpImp):
  • kjs/regexp_object.h:
8:26 PM Changeset in webkit [27701] by Antti Koivisto
  • 11 edits in trunk/WebCore

Reviewed by Darin.

Fix a bunch of cases where the exception code is checked by the function but is not zeroed first.

  • bindings/js/kjs_binding.cpp: (KJS::setDOMException):
  • dom/Attr.cpp: (WebCore::Attr::setPrefix):
  • dom/Document.cpp: (WebCore::Document::createElement):
  • dom/Element.cpp: (WebCore::Element::setPrefix):
  • dom/Range.cpp: (WebCore::Range::setStart): (WebCore::Range::setEnd): (WebCore::Range::isPointInRange): (WebCore::Range::comparePoint): (WebCore::Range::compareBoundaryPoints): (WebCore::Range::deleteContents): (WebCore::Range::processContents): (WebCore::Range::extractContents): (WebCore::Range::insertNode): (WebCore::Range::setStartAfter): (WebCore::Range::setEndBefore): (WebCore::Range::setEndAfter): (WebCore::Range::selectNode): (WebCore::Range::surroundContents): (WebCore::Range::setStartBefore):
  • editing/TextIterator.cpp: (WebCore::TextIterator::TextIterator):
  • html/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::createPattern):
  • html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::play): (WebCore::HTMLMediaElement::pause):
  • html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::add): (WebCore::HTMLSelectElement::setOption):
  • xml/XPathEvaluator.cpp: (WebCore::XPathEvaluator::evaluate):
8:14 PM Changeset in webkit [27700] by Darin Adler
  • 3 edits in trunk/WebCore

Reviewed by Mitz.

  • platform/graphics/cg/GraphicsContextCG.cpp: (WebCore::GraphicsContext::restorePlatformState): Clear the flag since we no longer know if the transform is identity or not. (WebCore::GraphicsContext::strokeArc): Removed an extra set of redundant CGContextSave/RestoreGState. (WebCore::GraphicsContext::beginTransparencyLayer): Clear the flag since we no longer know if the transform is identity or not. (WebCore::GraphicsContext::endTransparencyLayer): Ditto. (WebCore::GraphicsContext::scale): Ditto. (WebCore::GraphicsContext::rotate): Ditto. (WebCore::GraphicsContext::translate): Ditto. (WebCore::GraphicsContext::concatCTM): Ditto. (WebCore::GraphicsContext::roundToDevicePixels): Return quickly if the transform is known to be identity, and record that fact when we discover it otherwise.
  • platform/graphics/cg/GraphicsContextPlatformPrivate.h: (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate): Added a m_userToDeviceTransformKnownToBeIdentity flag, initialized to false.
8:09 PM Changeset in webkit [27699] by Darin Adler
  • 7 edits in trunk/WebCore

Reviewed by Mitz.

I measured a speed-up of the page load test while developing this patch. I don't
have a precise figure, though.

  • html/HTMLTokenizer.h: Removed unneeded lineNumberPtr() function. Also renamed lineno to m_lineNumber.
  • html/HTMLTokenizer.cpp: (WebCore::HTMLTokenizer::processListing): Don't pass 0 to the advance function since we don't want to update a line number. (WebCore::HTMLTokenizer::parseSpecial): Ditto. (WebCore::HTMLTokenizer::parseComment): Pass the line number data member directly instead of lineNumberPtr() since the advance function now takes a reference. (WebCore::HTMLTokenizer::parseServer): Ditto. (WebCore::HTMLTokenizer::parseProcessingInstruction): Ditto. (WebCore::HTMLTokenizer::parseText): Ditto. (WebCore::HTMLTokenizer::parseEntity): Ditto. (WebCore::HTMLTokenizer::parseTag): Ditto. (WebCore::HTMLTokenizer::write): Ditto.
  • loader/FTPDirectoryDocument.cpp: (WebCore::FTPDirectoryTokenizer::write):
  • loader/TextDocument.cpp: (WebCore::TextTokenizer::write): Don't pass 0 to the advance function.
  • platform/SegmentedString.h: (WebCore::SegmentedString::advance): Streamlined the most common case, and pushed less common cases into a separate function that is not inlined. Also got rid of a branch by separating the case with a line number from the case without one.
  • platform/SegmentedString.cpp: (WebCore::SegmentedString::advanceSlowCase): Added. The aforementioned less common cases are here.
7:36 PM Changeset in webkit [27698] by oliver
  • 2 edits in trunk/JavaScriptCore

Partial fix for <rdar://problem/5585334> numfuzz: integer overflows opening malformed SVG file in WebCore::ImageBuffer::create

Reviewed By Eric.

Unfortunately this is a very slight regression, but is unavoidable.

6:02 PM Changeset in webkit [27697] by Antti Koivisto
  • 2 edits in trunk/WebCore

Forgot to do this review change (and test HTTP commit).

  • html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::play):
5:54 PM Changeset in webkit [27696] by antti
  • 7 edits
    8 adds in trunk

WebCore:

Reviewed by Darin.


  • Update play() and pause() to match current HTML5 draft
    • send events asynchronously
    • add timeupdate event to pause
    • rethrow load() exception, not others
  • Use list for async events to get ordering right

Tests: media/video-pause-empty-events.html

media/video-play-empty-events.html
media/video-play-pause-events.html
media/video-play-pause-exception.html

  • html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::dispatchEventAsync): (WebCore::HTMLMediaElement::asyncEventTimerFired): (WebCore::HTMLMediaElement::play): (WebCore::HTMLMediaElement::pause):
  • html/HTMLMediaElement.h:

LayoutTests:

Reviewed by Darin.


Add tests for play() and pause() events.
Update one test to match new behavior.

  • media/video-currentTime-expected.txt:
  • media/video-currentTime.html:
  • media/video-pause-empty-events-expected.txt: Added.
  • media/video-pause-empty-events.html: Added.
  • media/video-play-empty-events-expected.txt: Added.
  • media/video-play-empty-events.html: Added.
  • media/video-play-pause-events-expected.txt: Added.
  • media/video-play-pause-events.html: Added.
  • media/video-play-pause-exception-expected.txt: Added
  • media/video-play-pause-exception.html: Added
  • media/video-test.js:
4:34 PM Changeset in webkit [27695] by eseidel
  • 13 edits in trunk

2007-11-10 Eric Seidel <eric@webkit.org>

Reviewed by darin.

Add simple type inferencing to the parser, and create custom
AddNode and LessNode subclasses based on inferred types.
http://bugs.webkit.org/show_bug.cgi?id=15884

SunSpider claims this is at least a 0.5% speedup.

  • JavaScriptCore.exp:
  • kjs/grammar.y:
  • kjs/internal.cpp: (KJS::NumberImp::getPrimitiveNumber): (KJS::GetterSetterImp::getPrimitiveNumber):
  • kjs/internal.h:
  • kjs/lexer.cpp: (KJS::Lexer::lex):
  • kjs/nodes.cpp: (KJS::Node::Node): (KJS::StringNode::evaluate): (KJS::StringNode::evaluateToNumber): (KJS::StringNode::evaluateToBoolean): (KJS::RegExpNode::evaluate): (KJS::UnaryPlusNode::optimizeVariableAccess): (KJS::AddNode::evaluate): (KJS::AddNode::evaluateToNumber): (KJS::AddNumbersNode::inlineEvaluateToNumber): (KJS::AddNumbersNode::evaluate): (KJS::AddNumbersNode::evaluateToNumber): (KJS::AddStringsNode::evaluate): (KJS::AddStringLeftNode::evaluate): (KJS::AddStringRightNode::evaluate): (KJS::lessThan): (KJS::lessThanEq): (KJS::LessNumbersNode::evaluate): (KJS::LessStringsNode::evaluate):
  • kjs/nodes.h: (KJS::ExpressionNode::): (KJS::RegExpNode::): (KJS::RegExpNode::precedence): (KJS::TypeOfResolveNode::): (KJS::LocalVarTypeOfNode::): (KJS::UnaryPlusNode::): (KJS::UnaryPlusNode::precedence): (KJS::AddNode::): (KJS::AddNode::precedence): (KJS::AddNumbersNode::): (KJS::AddStringLeftNode::): (KJS::AddStringRightNode::): (KJS::AddStringsNode::): (KJS::LessNode::): (KJS::LessNode::precedence): (KJS::LessNumbersNode::): (KJS::LessStringsNode::):
  • kjs/nodes2string.cpp: (KJS::StringNode::streamTo):
  • kjs/object.cpp:
  • kjs/object.h:
  • kjs/value.h: (KJS::JSValue::getPrimitiveNumber):
4:25 PM Changeset in webkit [27694] by alp@webkit.org
  • 2 edits in trunk/WebKit/gtk

2007-11-11 Alp Toker <alp@atoker.com>

Reviewed by Anders.

Initialize m_userAgent.

Fix typos in GDK_WINDOWING conditionals.

  • WebCoreSupport/FrameLoaderClientGtk.cpp: (WebKit::FrameLoaderClient::FrameLoaderClient): (WebKit::agentPlatform):
2:36 PM Changeset in webkit [27693] by Nikolas Zimmermann
  • 1 edit in trunk/WebCore/ChangeLog

Forgot to commit ChangeLog, in my last commit.

2:33 PM Changeset in webkit [27692] by Nikolas Zimmermann
  • 2 edits
    9 adds in trunk

Reviewed by Eric.

Fixes: http://bugs.webkit.org/show_bug.cgi?id=6424 (<text>, <tspan> dominant-baseline attribute is not respected)

Add (basic) support for dominant-baseline / alignment-baseline text properties.
Note: there are no official testcases, and no-one implemented it before. Only ASV3

supported dominant-baseline, but not correct it seems.

12:51 PM Changeset in webkit [27691] by Adam Roben
  • 7 edits in trunk

Fix <rdar://5133816> keepWebHistory is not implemented

WebCore:

Add wrappers around CoCreateInstance to COMPtr

I followed the example of the Query constructor and query method by
adding a Create constructor and create method.

Reviewed by Darin.

  • platform/win/COMPtr.h: (COMPtr::COMPtr): Added a new constructor that calls CoCreateInstance. (COMPtr::create): Added. (COMPtr::createInstance): Added.

WebKitTools:

Fix <rdar://5133816> keepWebHistory is not implemented

Fixes fast/history/clicked-link-is-visited.html.

Reviewed by Darin.

  • DumpRenderTree/win/DumpRenderTree.cpp: (runTest): Clear the optionalSharedHistory.
  • DumpRenderTree/win/LayoutTestControllerWin.cpp: (LayoutTestController::keepWebHistory): Set the optionalSharedHistory.

LayoutTests:

Remove a now-passing test from the Windows Skipped file

Reviewed by Darin.

  • platform/win/Skipped:
12:28 PM Changeset in webkit [27690] by ap@webkit.org
  • 32 edits in trunk/WebCore

Reviewed by Darin.

http://bugs.webkit.org/show_bug.cgi?id=15896
More editing cleanup

No functionality changes.

  • dom/Node.h: Moved several editing-related methods elsewhere.
  • dom/Node.cpp: (WebCore::Node::maxCharacterOffset): Renamed from maxOffset() to highlight that it is a match to offsetInCharacters(), and much different from other offset-related methods. Added ASSERT_NOT_REACHED(), as callers are supposed to check offsetInCharacters() before calling this.
  • dom/CharacterData.cpp: (WebCore::CharacterData::maxCharacterOffset):
  • dom/CharacterData.h: (WebCore::CharacterData::isCharacterDataNode): Updated for above renamings.
  • dom/Comment.{h,cpp}: Removed an override for offsetInCharacters(), which is already present in CharacterData.
  • dom/Document.{h,cpp}: Folded updateSelection() into Frame::selectionLayoutChanged().
  • dom/Position.h:
  • dom/Position.cpp: (WebCore::Position::uncheckedPreviousOffset): Moved from Node::previousOffset(). (WebCore::Position::uncheckedNextOffset): Moved from Node::NextOffset(). (WebCore::Position::previous): Adapted to the above move. (WebCore::Position::next): Ditto. (WebCore::Position::upstream): Removed an isBR() check, since a non-BR element cannot have a BR renderer (I think), and BR elements are covered by editingIgnoresContent(). (WebCore::Position::downstream): Ditto. (WebCore::caretMaxRenderedOffset): Moved from Node::caretMaxRenderedOffset(). (WebCore::Position::rendersInDifferentPosition): Updated for the above moves.
  • dom/PositionIterator.h: Added a comment describing this class from the original check-in.
  • dom/PositionIterator.cpp: (WebCore::PositionIterator::increment): Updated for the above moves. (WebCore::PositionIterator::decrement): Ditto.
  • dom/ProcessingInstruction.h:
  • dom/ProcessingInstruction.cpp: (WebCore::ProcessingInstruction::maxCharacterOffset): ProcessingInstruction was already returning true from offsetInCharacters(), but didn't override maxCharacterOffset(). I think that implementing it has no actual effect, as PIs are not rendered, but it looks cleaner this way.
  • dom/Range.cpp: (WebCore::Range::selectNodeContents):
  • editing/ApplyStyleCommand.cpp: (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange): (WebCore::ApplyStyleCommand::applyInlineStyle): (WebCore::maxRangeOffset): (WebCore::ApplyStyleCommand::removeInlineStyle): (WebCore::ApplyStyleCommand::splitTextAtStartIfNeeded): (WebCore::ApplyStyleCommand::splitTextAtEndIfNeeded): (WebCore::ApplyStyleCommand::splitTextElementAtStartIfNeeded): (WebCore::ApplyStyleCommand::splitTextElementAtEndIfNeeded): (WebCore::ApplyStyleCommand::mergeEndWithNextIfIdentical):
  • editing/CompositeEditCommand.cpp: (WebCore::CompositeEditCommand::insertNodeAt): (WebCore::CompositeEditCommand::positionOutsideTabSpan):
  • editing/DeleteSelectionCommand.cpp: (WebCore::DeleteSelectionCommand::handleGeneralDelete):
  • editing/InsertLineBreakCommand.cpp: (WebCore::InsertLineBreakCommand::doApply):
  • editing/InsertParagraphSeparatorCommand.cpp: (WebCore::InsertParagraphSeparatorCommand::doApply):
  • editing/InsertTextCommand.cpp: (WebCore::InsertTextCommand::insertTab):
  • editing/visible_units.cpp: (WebCore::previousLinePosition): (WebCore::nextLinePosition): Updated for the above moves.
  • editing/Editor.cpp: (WebCore::Editor::advanceToNextMisspelling): Added a missing rangeCompliantEquivalent() call.
  • editing/TextIterator.cpp: (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator): Changed the condition to obviously match a maxCharacterOffset() call made after it; hopefully, this doesn't break any border cases. (WebCore::SimplifiedBackwardsTextIterator::advance): Updated for the above moves.
  • editing/htmlediting.h:
  • editing/htmlediting.cpp: (WebCore::canHaveChildrenForEditing): Removed a bogus comment: I don't thin BRs have a special ability to accept child nodes, other than via DOM manipulation, which is not specific to BRs. (WebCore::rangeCompliantEquivalent): Removed a check for BR, which is already covered by editingIgnoresContent(). (WebCore::maxDeepOffset): Ditto. (WebCore::caretMinOffset): Moved from Node. Changed some runtime checks that seemingly cannot fail into assertions. (WebCore::caretMaxOffset): Ditto.
  • page/EventHandler.cpp: (WebCore::EventHandler::handleMousePressEventSingleClick): Pass 0 to VisiblePosition constructor instead of caretMinOffset. I didn't want to include htmlediting.h here, and I think that VisiblePosition constructor will take care of adjusting the offset.
  • page/Frame.cpp: (WebCore::Frame::selectionLayoutChanged): Folded Document::updateSelection() here.
  • page/mac/WebCoreFrameBridge.mm: (-[WebCoreFrameBridge smartDeleteRangeForProposedRange:]): Added missing rangeCompliantEquivalent() calls.
  • rendering/RenderBlock.cpp: (WebCore::RenderBlock::positionForRenderer): Changed to not round-trip via editing. Changed some runtime checks that seemingly cannot fail into assertions.
11:24 AM Changeset in webkit [27689] by Darin Adler
  • 6 edits in trunk/JavaScriptCore
  • try another way of fixing dftables builds -- refactor pcre_internal.h a bit
  • pcre/pcre_internal.h: Make most of this header do nothing when DFTABLES is set. Later we can break it into two files.
  • JavaScriptCore.vcproj/dftables/dftables.vcproj: Take out now-unneeded include paths.
  • pcre/dftables.cpp: Set DFTABLES. Use delete instead of free.
  • pcre/dftables.pro: Take out now-unneeded include paths.
  • pcre/pcre_maketables.cpp: Use new instead of malloc.
11:05 AM Changeset in webkit [27688] by Darin Adler
  • 2 edits in trunk/JavaScriptCore
  • pcre/dftables.pro: Try fixing Qt builds (I looked at qt-win) by adding another include path.
11:03 AM Changeset in webkit [27687] by Darin Adler
  • 2 edits in trunk/JavaScriptCore
  • JavaScriptCore.xcodeproj/project.pbxproj: Try fixing Mac Tiger builds by adding another include path.
10:56 AM Changeset in webkit [27686] by Darin Adler
  • 22 edits
    9 moves
    4 deletes in trunk

JavaScriptCore:

Reviewed by Sam.

This is a combination of converting to C++, tweaking the API, and adding
some additional optimizations.

Future steps will involve getting rid of the use of UTF-8 completely
(we'll use UTF-16 exclusively instead), eliminating more source files,
and some more speed-ups.

SunSpider says the current round is an 0.9% speed-up overall, and a
5.3% speed-up for regexp.

  • kjs/regexp.cpp: (KJS::RegExp::RegExp): Changed to use the error message without calling strdup on it and to pass the new types and options. (KJS::RegExp::~RegExp): Removed the now-unneeded free of the error message. (KJS::RegExp::match): Pass the new types and options.
  • kjs/regexp.h: Update type of m_constructionError.
  • pcre/AUTHORS: Update to reflect the status of the project -- we don't include the Google parts, and this isn't the PCRE library, per se.
  • pcre/COPYING: Ditto.
  • pcre/dftables.cpp: Copied from JavaScriptCore/pcre/dftables.c. (main): Removed unneeded ctype_digit.
  • pcre/pcre.h: Convert to C++, tweak API a bit. Use UChar instead of JSRegExpChar.
  • pcre/pcre_compile.cpp: Copied from JavaScriptCore/pcre/pcre_compile.c. Moved a lot of private stuff used only within this file here from pcre_internal.h. Renumbered the error codes. (error_text): Use a single string with embedded nulls for the error text (I got this idea from newer versions of PCRE). (check_escape): Changed return type to be enum instead of int. Replaced ctype_digit uses with isASCIIDigit. (is_counted_repeat): Ditto. (read_repeat_counts): Ditto. (first_significant_code): Ditto. (find_fixedlength): Ditto. (could_be_empty_branch): Ditto. (compile_branch): Ditto. Also removed some code that handles changing options. JavaScript doesn't have any of the features that allow options to change. (compile_regex): Updated for change to options parameter. (is_anchored): Ditto. (find_firstassertedchar): Ditto. (jsRegExpCompile): Changed to take separate flags instead of an options int. Also changed to call new/delete instead of pcre_malloc/free. (jsRegExpFree): Ditto.
  • pcre/pcre_exec.cpp: Copied from JavaScriptCore/pcre/pcre_exec.c. Added a case that uses computed goto for the opcode loop, but did not turn it on. Changed the RMATCH macro to handle returns more efficiently by putting the where pointer in the new frame instead of the old one, allowing us to branch to the return with a single statement. Switched to new/delete from pcre_malloc/free. Changed many RRETURN callers to not set the return value since it's already set correctly. Replaced the rrc variable with an is_match variable. Values other than "match" and "no match" are now handled differently. This allows us to remove the code to check for those cases in various rules. (match): All the case statements use a macro BEGIN_OPCODE instead. And all the continue statements, or break statements that break out of the outer case use a macro NEXT_OPCODE instead. Replaced a few if statements with assertions. (jsRegExpExecute): Use new/delete instead of pcre_malloc/free. Removed unused start_match field from the match block.
  • pcre/pcre_internal.h: Moved the last few configuration macros from pcre-config.h in here. Removed various unused types. Converted from JSRegExpChar to UChar. Eliminated pcre_malloc/free. Replaced the opcode enum with a macro that can be used in multiple places. Unfortunately we lose the comments for each opcode; we should find a place to put those back. Removed ctype_digit.
  • pcre/pcre_maketables.cpp: Copied from JavaScriptCore/pcre/pcre_maketables.c. (pcre_maketables): Got rid of the conditional code that allows this to be compiled in -- it's only used for dftables now (and soon may be obsolete entirely). Changed code for cbit_digit to not use isdigit, and took the "_" case out of the loop. Removed ctype_digit.
  • pcre/pcre_ord2utf8.cpp: Copied from JavaScriptCore/pcre/pcre_ord2utf8.c.
  • pcre/pcre_tables.cpp: Copied from JavaScriptCore/pcre/pcre_tables.c. Moved _pcre_OP_lengths out of here into pcre_exec.cpp.
  • pcre/pcre_ucp_searchfuncs.cpp: Copied from JavaScriptCore/pcre/pcre_ucp_searchfuncs.c. Updated for other file name changes.
  • pcre/ucpinternal.h: Updated header.
  • wtf/ASCIICType.h: (WTF::isASCIIDigit): Removed a branch by changing from && to & for this operation. Also added an overload that takes an int because that's useful for PCRE. Later we could optimize for int and overload other functions in this file; stuck to this simple one for now.
  • wtf/unicode/icu/UnicodeIcu.h: Removed unused isUpper.
  • wtf/unicode/qt4/UnicodeQt4.h: Ditto.
  • pcre/LICENCE: Removed.
  • pcre/pcre-config.h: Removed.
  • wtf/FastMallocPCRE.cpp: Removed.
  • pcre/dftables.c: Renamed to cpp.
  • pcre/pcre_compile.c: Ditto.
  • pcre/pcre_exec.c: Ditto.
  • pcre/pcre_maketables.c: Ditto.
  • pcre/pcre_ord2utf8.c: Ditto.
  • pcre/pcre_tables.c: Ditto.
  • pcre/pcre_ucp_searchfuncs.c: Ditto.
  • pcre/pcre_xclass.c: Ditto.
  • pcre/ucptable.c: Ditto.

WebCore:

Reviewed by Sam.

  • updated for JSRegExp function changes
  • platform/RegularExpression.cpp: (WebCore::RegularExpression::Private::compile): (WebCore::RegularExpression::match):
1:32 AM Changeset in webkit [27685] by alp@webkit.org
  • 2 edits in trunk/WebKit/gtk

2007-11-11 Alp Toker <alp@atoker.com>

Reviewed by Mark Rowe.

Mention Safari in the UserAgent string to improve site compatibility.

Also bump the hard-coded AppleWebKit version number.

  • WebCoreSupport/FrameLoaderClientGtk.cpp: (WebKit::composeUserAgent):
12:34 AM Changeset in webkit [27684] by eseidel
  • 2 edits in trunk/JavaScriptCore

2007-11-11 Eric Seidel <eric@webkit.org>

Reviewed by Oliver.

Add KJS_CHECKEXCEPTIONBOOLEAN to match rest of nodes.cpp

  • kjs/nodes.cpp: (KJS::ExpressionNode::evaluateToBoolean): (KJS::LessNode::evaluateToBoolean): (KJS::GreaterNode::evaluateToBoolean): (KJS::LessEqNode::evaluateToBoolean): (KJS::GreaterEqNode::evaluateToBoolean): (KJS::InstanceOfNode::evaluateToBoolean): (KJS::InNode::evaluateToBoolean): (KJS::EqualNode::evaluateToBoolean): (KJS::NotEqualNode::evaluateToBoolean): (KJS::StrictEqualNode::evaluateToBoolean): (KJS::NotStrictEqualNode::evaluateToBoolean): (KJS::LogicalAndNode::evaluateToBoolean): (KJS::LogicalOrNode::evaluateToBoolean): (KJS::ConditionalNode::evaluateToBoolean):

Nov 10, 2007:

8:05 PM Changeset in webkit [27683] by mrowe@apple.com
  • 2 edits in trunk/WebCore

2007-11-10 Mark Rowe <mrowe@apple.com>

Qt Linux build fix.

  • platform/UnicodeRange.h:
7:52 PM Changeset in webkit [27682] by mrowe@apple.com
  • 2 edits in trunk/WebCore

2007-11-10 Mark Rowe <mrowe@apple.com>

Qt Windows build fix.

  • platform/UnicodeRange.h:
7:33 PM Changeset in webkit [27681] by Darin Adler
  • 2 edits in trunk/LayoutTests
6:12 PM Changeset in webkit [27680] by Nikolas Zimmermann
  • 24 edits in trunk

Reviewed by Eric.

Fixes: http://bugs.webkit.org/show_bug.cgi?id=15937 (Add glyph-orientation-horizontal/vertical support)
Fixes: http://bugs.webkit.org/show_bug.cgi?id=13971 (text-anchor support on vertical text seems slightly off)

Add glyph-orientation-* support for text & textPath. (90/180/270 and 'auto')
Also fix all vertical text handling - for text & textPath! (especially latin1 characters auto orientation in vertical writing modes)

5:38 PM Changeset in webkit [27679] by Nikolas Zimmermann
  • 9 edits in trunk/LayoutTests

Rubberstamped by Eric.
Update some SVG pixel test results - which show changes lately -> repainting fixes.

5:07 PM Changeset in webkit [27678] by Darin Adler
  • 4 edits
    3 adds in trunk

JavaScriptCore:

Reviewed by Sam.

Test: fast/js/delete-then-put.html

  • kjs/property_map.cpp: (KJS::PropertyMap::put): Added a missing "- 1"; code to find an empty slot was not working. (KJS::PropertyMap::checkConsistency): Added a missing range check that would have caught this problem before.
  • roll out a last-minute change to my evaluateToBoolean patch that was incorrect.
  • kjs/nodes.h: (KJS::ExprStatementNode::ExprStatementNode): Take out call to optimizeForUnnecessaryResult, since the result is used in some cases.

LayoutTests:

Reviewed by Sam.

  • fast/js/delete-then-put-expected.txt: Added.
  • fast/js/delete-then-put.html: Added.
  • fast/js/resources/delete-then-put.js: Added.
4:49 PM Changeset in webkit [27677] by timothy@apple.com
  • 2 edits in trunk/WebCore

Reviewed by Sam Weinig.

  • page/inspector/StylesSidebarPane.js: Fix the wording of a comment and switch over to use getUniqueProperties in another place.
4:30 PM Changeset in webkit [27676] by weinig@apple.com
  • 8 edits
    2 adds in trunk

WebKitTools:

Reviewed by Tim Hatcher.

Follow up to <rdar://problem/5394877> Safari should not log unsafe JavaScript
attempts when in private browsing mode (only an issue if Log JavaScript Exceptions
is turned on)

  • Add LayoutTestController.setPrivateBrowsingEnabled(bool) (stub out implementation for windows)

Added test: http/tests/security/cross-frame-access-private-browsing.html

  • DumpRenderTree/LayoutTestController.cpp: (setPrivateBrowsingEnabledCallback): (LayoutTestController::staticFunctions):
  • DumpRenderTree/LayoutTestController.h:
  • DumpRenderTree/mac/DumpRenderTree.mm: (runTest): Default to private browsing disabled.
  • DumpRenderTree/mac/LayoutTestControllerMac.mm: (LayoutTestController::setPrivateBrowsingEnabled):
  • DumpRenderTree/win/LayoutTestControllerWin.cpp: (LayoutTestController::setPrivateBrowsingEnabled):

LayoutTests:

Reviewed by Tim Hatcher.

Follow up to <rdar://problem/5394877> Safari should not log unsafe JavaScript
attempts when in private browsing mode (only an issue if Log JavaScript Exceptions
is turned on)

Test using the new LayoutTestController.setPrivateBrowsingEnabled(bool)

  • http/tests/security/cross-frame-access-private-browsing-expected.txt: Added.
  • http/tests/security/cross-frame-access-private-browsing.html: Added.
  • platform/win/Skipped: Add new test to windows skip list until we have an implementation of LayoutTestController.setPrivateBrowsingEnabled(bool) for it.
3:38 PM Changeset in webkit [27675] by sullivan@apple.com
  • 2 edits in trunk/WebCore

Reviewed by Sam Weinig

Rest of fix for 5394877

  • bindings/js/kjs_window.cpp: (KJS::Window::isSafeScript): Don't log unsafe JavaScript attempts in the other version of isSafeScript() if in private browsing mode either.
3:16 PM Changeset in webkit [27674] by Nikolas Zimmermann
  • 2 edits in trunk/WebCore

Reviewed by Oliver.

Fix function name difference - header said 'unicodeRangeForCharacter', actually
implemented function is 'findCharUnicodeRange'. They are not compiled yet.

2:24 PM Changeset in webkit [27673] by hausmann
  • 2 edits in trunk/WebKit/qt

When populating the context menu with sub-menus don't add sub-menus if they're empty.

Signed-off-by: Nikolas

2:24 PM Changeset in webkit [27672] by hausmann
  • 3 edits in trunk/WebKit/qt

Added support for the Bold/Italic/Underline toggle actions.

Signed-off-by: Nikolas

2:24 PM Changeset in webkit [27671] by hausmann
  • 3 edits in trunk/WebKit/qt

Before adding an action to the context menu call checkOrEnableIfNeeded for each action
to update the enable/checked state correctly.

Signed-off-by: Nikolas

2:24 PM Changeset in webkit [27670] by hausmann
  • 2 edits in trunk/WebKit/qt

Mark the text direction actions as checkable actions.

Signed-off-by: Nikolas

2:18 PM Changeset in webkit [27669] by Adam Roben
  • 2 edits in trunk/JavaScriptCore

Windows build fix

Roll out some changes that were (seemingly accidentally) checked in
with r27664.

1:12 PM Changeset in webkit [27668] by mitz@apple.com
  • 3 edits in trunk/WebCore

Reviewed by Darin Adler.

  • fix <rdar://problem/5450655> Control-clicking text in a link can surprisingly select only part of the link, should select entire link

No test because context menu events cannot be tested in DumpRenderTree.

  • page/EventHandler.cpp: (WebCore::EventHandler::selectClosestWordOrLinkFromMouseEvent): Added. If the click occurred in an active link, selects the entire link element. Otherwise selects the closest word. (WebCore::EventHandler::sendContextMenuEvent): Call selectClosestWordOrLinkFromMouseEvent().
  • page/EventHandler.h:
1:08 PM Changeset in webkit [27667] by sullivan@apple.com
  • 2 edits in trunk/WebCore

Reviewed by Tim Hatcher

  • fixed <rdar://problem/5394877> Safari should not log unsafe JavaScript attempts when in private browsing mode (only an issue if Log JavaScript Exceptions is turned on)
  • bindings/js/kjs_window.cpp: (KJS::Window::isSafeScript): Don't log unsafe JavaScript attempts to console or chromeClient if in private browsing mode
12:29 PM Changeset in webkit [27666] by ap@webkit.org
  • 8 edits
    8 adds in trunk

Reviewed by Darin.

http://bugs.webkit.org/show_bug.cgi?id=15922
Implement more of Mozilla Selection API

Tests: editing/selection/containsNode.html

editing/selection/deleteFromDocument.html
editing/selection/extend.html
editing/selection/selectAllChildren.html

  • editing/SelectionController.cpp: (WebCore::SelectionController::deleteFromDocument): (WebCore::SelectionController::containsNode): (WebCore::SelectionController::selectAllChildren): (WebCore::SelectionController::extend):
  • editing/SelectionController.h: Added deleteFromDocument(), containsNode(), and selectAllChildren(). Reimplemented extend(), which existed, but didn't match Firefox behavior and wasn't exposed via bindings. Removed a comment mentioning removeRange(), as this method makes no sense without multiple selection range support.
  • page/DOMSelection.cpp: (WebCore::DOMSelection::extend): (WebCore::DOMSelection::deleteFromDocument): (WebCore::DOMSelection::containsNode): (WebCore::DOMSelection::selectAllChildren):
  • page/DOMSelection.h:
  • page/DOMSelection.idl: Exposed the new methods.
12:24 PM Changeset in webkit [27665] by ap@webkit.org
  • 3 edits
    2 adds in trunk

Reviewed by Darin.

http://bugs.webkit.org/show_bug.cgi?id=15892
DOM Range operations are not implemented for ProcessingInstruction nodes

Test: fast/dom/Range/range-processing-instructions.html

  • dom/Range.cpp: (WebCore::Range::processContents): Implemented ProcessingInstruction cases. (WebCore::Range::checkNodeWOffset): Removed a FIXME - yes, I think that we are supposed to use ProcessingInstruction.data.
10:29 AM Changeset in webkit [27664] by Darin Adler
  • 7 edits
    3 adds in trunk/JavaScriptCore

Reviewed by Sam.

Gives 1.1% on SunSpider.

  • kjs/grammar.y: Create TrueNode and FalseNode instead of BooleanNode.
  • kjs/nodes.h: Changed to use Noncopyable. Moved optimizeForUnnecessaryResult down from Node to ExpressionNode. Changed some classes to not inherit from ExpressionNode where not necessary, and removed unnneeded evaluate functions as well as evaluate functions that need not be virtual. Call the optimizeForUnnecessaryResult function on the start of a for loop too.
  • kjs/nodes.cpp: (KJS::ExpressionNode::evaluateToBoolean): Added. (KJS::FalseNode::evaluate): Added. (KJS::TrueNode::evaluate): Added. (KJS::NumberNode::evaluateToBoolean): Added. (KJS::StringNode::evaluateToBoolean): Added. (KJS::LocalVarAccessNode::evaluateToBoolean): Added. (KJS::BracketAccessorNode::evaluateToBoolean): Added. (KJS::LogicalNotNode::evaluate): Changed to call evaluateToBoolean. (KJS::LogicalNotNode::evaluateToBoolean): Added. (KJS::lessThan): Changed to return bool. (KJS::lessThanEq): Ditto. (KJS::LessNode::evaluate): Changed since lessThan returns bool. (KJS::LessNode::evaluateToBoolean): Added. (KJS::GreaterNode::evaluate): Changed since lessThanEq returns bool. (KJS::GreaterNode::evaluateToBoolean): Added. (KJS::LessEqNode::evaluate): Changed since lessThanEq returns bool. (KJS::LessEqNode::evaluateToBoolean): Added. (KJS::GreaterEqNode::evaluate): Changed since lessThan returns bool. (KJS::GreaterEqNode::evaluateToBoolean): Added. (KJS::InstanceOfNode::evaluateToBoolean): Added. (KJS::InNode::evaluateToBoolean): Added. (KJS::EqualNode::evaluateToBoolean): Added. (KJS::NotEqualNode::evaluateToBoolean): Added. (KJS::StrictEqualNode::evaluateToBoolean): Added. (KJS::NotStrictEqualNode::evaluateToBoolean): Added. (KJS::ConditionalNode::evaluate): Changed to call evaluateToBoolean. (KJS::IfNode::execute): Ditto. (KJS::DoWhileNode::execute): Ditto. (KJS::WhileNode::execute): Ditto. (KJS::ForNode::execute): Ditto.
  • kjs/nodes2string.cpp: (KJS::FalseNode::streamTo): Added. (KJS::TrueNode::streamTo): Added.
5:01 AM Applications using WebKit edited by joe@funkeemonk.com
(diff)
12:02 AM Changeset in webkit [27663] by timothy@apple.com
  • 3 edits in trunk/WebCore

Reviewed by Mark Rowe.

Bug 12054: Ability to serialize an element subtree (into clipboard?) from the DOM inspector
http://bugs.webkit.org/show_bug.cgi?id=12054

  • Add support code for routing copy events to the focused element.
  • Implement copying the currently selected DOM node. The node and it's subtree is copied to the clipboard. If the node has no outerHTML, the nodeValue is copied (text nodes, etc.)
  • Implement copy for the resource sidebar. The URL is copied for the currently selected resource.
  • page/inspector/DocumentPanel.js:
  • page/inspector/inspector.js:
Note: See TracTimeline for information about the timeline view.