Timeline


and

12/20/07:

23:40 Changeset [28930] by ap@webkit.org

Windows build fix

  • JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Copy npruntime_internal.h to WebKitBuild.
23:21 Changeset [28929] by eric@webkit.org

2007-12-17 Eric Seidel <eric@webkit.org>

Reviewed by mjs.

Split IfNode into IfNode and IfElseNode for speedup.
http://bugs.webkit.org/show_bug.cgi?id=16470

SunSpider claims this is 1.003x as fast as before.
(This required running with --runs 15 to get consistent enough results to tell!)

  • kjs/grammar.y:
  • kjs/nodes.cpp: (KJS::IfNode::optimizeVariableAccess): (KJS::IfNode::execute): (KJS::IfNode::getDeclarations): (KJS::IfElseNode::optimizeVariableAccess): (KJS::IfElseNode::execute): (KJS::IfElseNode::getDeclarations):
  • kjs/nodes.h: (KJS::IfNode::): (KJS::IfElseNode::):
  • kjs/nodes2string.cpp: (KJS::IfNode::streamTo): (KJS::IfElseNode::streamTo):
22:57 Changeset [28928] by jhoneycutt@apple.com

2007-12-20 Jon Honeycutt <jhoneycutt@apple.com>

Reviewed by Kevin Decker.

<rdar://problem/5655797> REGRESSION(304-306A10) Safari does not find
shockwave plugin on freshly installed OS

Look for Director plugin in its native directory.

  • plugins/win/PluginDatabaseWin.cpp: (WebCore::PluginDatabaseWin::getPluginsInPaths): The Director plugin doesn't start with "np," so special case its filename. (WebCore::addMacromediaPluginPaths): Add Flash and "Shockwave 10" directories to the plugin paths. (WebCore::PluginDatabaseWin::defaultPluginPaths):
22:07 Changeset [28927] by darin@apple.com

Reviewed by Oliver.

  • fix <rdar://problem/5658787> Selector -[WebView insertLineBreak:] is not implemented
  • WebView/WebView.mm: Added all selectors implemented by WebHTMLView to the list of selectors to forward here. The new ones are: changeBaseWritingDirection:, changeSpelling:, deleteToMark:, insertLineBreak:, moveParagraphBackwardAndModifySelection:, moveParagraphForwardAndModifySelection:, pageDownAndModifySelection:, pageUpAndModifySelection:, selectToMark:, setMark:, swapWithMark:, takeFindStringFromSelection:, toggleBaseWritingDirection:, and transpose:.
22:06 Changeset [28926] by darin@apple.com

Reviewed by Sam.

  • wtf/OwnPtr.h: (WTF::operator==): Added. (WTF::operator!=): Added.
19:56 Changeset [28925] by alp@webkit.org

2007-12-20 Peter Kasting <zerodpx@gmail.com>

Reviewed by Alp Toker.

http://bugs.webkit.org/show_bug.cgi?id=16508
Fix regression in GIFImageDecoder.cpp: "Haeberli hack" led to wrongly
decoded transparent areas.

  • platform/image-decoders/gif/GIFImageDecoder.cpp: (WebCore::GIFImageDecoder::haveDecodedRow):
  • platform/image-decoders/gif/GIFImageDecoder.h:
  • platform/image-decoders/gif/GIFImageReader.cpp: (GIFImageReader::output_row):
18:55 Changeset [28924] by justin.garcia@apple.com

WebCore:

Reviewed by Oliver Hunt.

<rdar://problem/5543472> GoogleDocs: Safari hangs when creating a list from a particular selection


Still need to fix similar issues with the other operations that iterate
over selected paragraphs, like FormatBlock, Indent and Outdent (<rdar://problem/5658933>).

  • editing/IndentOutdentCommand.cpp: (WebCore::IndentOutdentCommand::indentRegion): Added a FIXME.
  • editing/IndentOutdentCommand.h: Removed an unused function.
  • editing/InsertListCommand.cpp: (WebCore::InsertListCommand::modifyRange): Renamed visibleStart to startOfSelection and visibleEnd to endOfSelection. Call the new selectionForParagraphIteration, which a) prevents operations like this one from being performed on a table that isn't fully selected (where the selection starts just before the table and ends inside it), and b) helps prevent paragraph iteration from going past the end of the selection. Call the new startOfNextParagraph, instead of using endOfParagraph(v).next(), since when v is in the last paragraph of the last cell of a table, that expression will return the position after the table, not the start of the next paragraph.
  • editing/htmlediting.cpp: (WebCore::enclosingListChild): Don't go above a table cell, so that list operations take effect inside the table cell where they are performed. (WebCore::selectionForParagraphIteration): Added, see above. (WebCore::indexForVisiblePosition): Moved from IndentOutdentCommand.cpp.
  • editing/htmlediting.h:
  • editing/visible_units.cpp: (WebCore::startOfNextParagraph): Added, see above.
  • editing/visible_units.h:
  • editing/TextIterator.h: (WebCore::TextIterator::exitNode): Added a FIXME.

LayoutTests:

Reviewed by Oliver Hunt.


<rdar://problem/5543472> GoogleDocs: Safari hangs when creating a list from a particular selection

  • editing/execCommand/5543472-1-expected.txt: Added.
  • editing/execCommand/5543472-1.html: Added.
  • editing/execCommand/5543472-2-expected.txt: Added.
  • editing/execCommand/5543472-2.html: Added.
  • editing/execCommand/5543472-3-expected.txt: Added.
  • editing/execCommand/5543472-3.html: Added.
18:18 Changeset [28923] by ggaren@apple.com

Reviewed by Oliver Hunt.


AST optimization: Avoid NULL-checking ForNode's child nodes.


0.6% speedup on SunSpider.


This is a proof of concept patch that demonstrates how to optimize
grammar productions with optional components, like


for (optional; optional; optional) {

...

}


The parser emits NULL for an optional component that is not present.

Instead of checking for a NULL child at execution time, a node that
expects an optional component to be present more often than not checks
for a NULL child at construction time, and substitutes a viable
alternative node in its place.

(We'd like the parser to start emitting NULL a lot more once we teach
it to emit NULL for certain no-op productions like EmptyStatement and
VariableStatement, so, as a foundation, it's important for nodes with
NULL optional components to be fast.)

  • kjs/Parser.cpp: (KJS::Parser::didFinishParsing): Check for NULL SourceElements. Also, moved didFinishParsing into the .cpp file because adding a branch while it was in the header file caused a substantial and inexplicable performance regression. (Did I mention that GCC is crazy?)
  • kjs/grammar.y:
  • kjs/nodes.cpp: (KJS::BlockNode::BlockNode): Check for NULL SourceElements. (KJS::ForNode::optimizeVariableAccess): No need to check for NULL here. (KJS::ForNode::execute): No need to check for NULL here.
  • kjs/nodes.h: (KJS::ForNode::): Check for NULL SourceElements. Substitute a TrueNode because it's semantically harmless, and it evaluates to boolean in an efficient manner.
17:31 Changeset [28922] by mitz@apple.com

Reviewed by John Sullivan.

  • reorganize skipped test list
  • platform/win/Skipped:
16:33 Changeset [28921] by alp@webkit.org

2007-12-20 Alp Toker <alp@atoker.com>

Rubber-stamped by Maciej.

http://bugs.webkit.org/show_bug.cgi?id=16542
[GTK] Text is missing with old Pango version

Back out commits r28880, r28876, r28865, r28864 which added Pango font
selection support. These changes caused a regression where no text was
displayed with older Pango versions.

16:24 Changeset [28920] by eric@webkit.org

2007-12-20 Eric Seidel <eric@webkit.org>

Reviewed by mjs.

  • sunspider: increase default number of runs for more accurate numbers
15:59 Changeset [28919] by oliver@apple.com

ChangeLog entry corrections

15:46 Changeset [28918] by timothy@apple.com

Reviewed by Sam Weinig.

<rdar://problem/5604897> Double-clicking on JavaScript console error
won't show the line where it occurred

Make the URLs clickable in the console, since double clicking is used for
word text selection. Makes the word "line" localizable. Messages that don't
have a URL will no longer print "undefined". Messages that have a line number
less than or equal to 0 will no longer be printed.

  • English.lproj/InspectorLocalizedStrings.js: Add "%s (line %d)".
  • page/inspector/ConsolePanel.js: Tweak how the DOM nodes are created and change the click handler to look for a link with the "console-message-url" class name.
  • page/inspector/SourcePanel.js: Call setupSourceFrameIfNeeded() if a line row is needed.
  • page/inspector/inspector.css: Update the look of the URL in the console.
15:43 Changeset [28917] by eric@webkit.org

2007-12-20 Eric Seidel <eric@webkit.org>

Reviewed by mjs.

Fix major Array regression introduced by 28899.

SunSpider claims this is at least 1.37x as fast as pre-regression. :)

  • kjs/array_instance.cpp: make Array's fast again!
15:39 Changeset [28916] by oliver@apple.com

Slight logic reordering in JSImmediate::from(double)

Reviewed by Geoff.

This gives a 0.1% improvement in SunSpider.

15:30 Changeset [28915] by sfalken@apple.com

New tag.

15:30 Changeset [28914] by sfalken@apple.com

Bump versions for submit

14:46 Changeset [28913] by eric@webkit.org

2007-12-20 Eric Seidel <eric@webkit.org>

Reviewed by Geoff, then re-rubber-stamped by Geoff after final search/replace and testing.

Small reworking of Date code for 4% speedup on Date tests (0.2% overall)
http://bugs.webkit.org/show_bug.cgi?id=16537

Make msToYear human-readable
Make msToDayInMonth slightly more readable and avoid recalculating msToYear
Remove use of isInLeapYear to avoid calling msToYear
Remove dayInYear call by changing msToDayInMonth to dayInMonthFromDayInYear
Remove more duplicate calls to dayInYear and getUTCOffset for further speedup

  • kjs/DateMath.cpp: (KJS::daysFrom1970ToYear): (KJS::msToYear): (KJS::monthFromDayInYear): (KJS::checkMonth): (KJS::dayInMonthFromDayInYear): (KJS::dateToDayInYear): (KJS::getDSTOffsetSimple): (KJS::getDSTOffset): (KJS::gregorianDateTimeToMS): (KJS::msToGregorianDateTime):
14:39 Changeset [28912] by weinig@apple.com

WebCore:

Reviewed and landed by Sam Weinig.

http://bugs.webkit.org/show_bug.cgi?id=15313
<rdar://problem/5514516>

The same-origin check was incorrect in two cases (both fixed in this
patch):

A) If both the source and the target have set their document.domain

to the same value, the protocol must also match in order for
access to be allowed. Without this requirement, the browser is
vulnerable to the following attack:

1) Suppose there is an HTTPS site (www.example.com) that sets

document.domain = "example.com".

2) A network attacker redirects the browser to http://www.example.com/

a) injects script to set document.domain = "example.com", and
b) opens a window to https://www.example.com/

3) Now the network attacker can inject script into the HTTPS page,

stealing cookies and issuing banking transactions.

B) If only one of the source and target has set document.domain, then

access should be denied. With this behavior, the browser is
vulnerable to the following attack:

1) Suppose http://foo.example.com/ opens an iframe to

http://foo.example.com/frame.html that
a) sets document.domain = "example.com", and
b) opens an iframe to http://bar.example.com/
This is a common usage of document.domain for cross-domain
communication, see for example:

http://www.collinjackson.com/research/papers/fp801-jackson.pdf

2) The inner-most iframe, which is from bar.example.com, sets

document.domain = "example.com".

3) Now the inner-most iframe can inject script into the middle

iframe (say via document.write). This bar.example.com script
now has access to the outer-most frame (from foo.example.com).

Both these changes cause WebKit to match the behavior of Firefox 2 and
IE6 in these cases. This patch includes regression tests for both
issues.

Internet Explorer 7 and Opera 9 are more strict in that they require
the port numbers to match when both pages have document.domain set.
Opera 9 allows access when only one page has set document.domain, but
this is a security vulnerability.

Tests: http/tests/security/cross-frame-access-child-explicit-domain.html

http/tests/security/cross-frame-access-parent-explicit-domain.html

  • bindings/js/kjs_window.cpp: (KJS::createWindow): (KJS::Window::allowsAccessFrom):
  • dom/Document.cpp: (WebCore::Document::domain): (WebCore::Document::setDomain): (WebCore::Document::initSecurityOrigin):
  • dom/Document.h: (WebCore::Document::securityOrigin):
  • loader/FrameLoader.cpp: (WebCore::FrameLoader::begin): (WebCore::FrameLoader::checkCallImplicitClose): (WebCore::FrameLoader::shouldAllowNavigation):
  • platform/SecurityOrigin.cpp: (WebCore::SecurityOrigin::setForURL): (WebCore::SecurityOrigin::createForFrame): (WebCore::SecurityOrigin::canAccess):
  • platform/SecurityOrigin.h: (WebCore::SecurityOrigin::domain):
  • storage/Database.cpp: (WebCore::Database::openDatabase): (WebCore::Database::Database): (WebCore::Database::securityOriginData):
  • storage/Database.h: (WebCore::Database::databaseDebugName):
  • storage/DatabaseTracker.cpp: (WebCore::DatabaseTracker::canEstablishDatabase):
  • storage/SQLTransaction.cpp: (WebCore::SQLTransaction::postflightAndCommit): (WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback):

LayoutTests:

Reviewed and landed by Sam Weinig.

Update LayoutTests for http://bugs.webkit.org/show_bug.cgi?id=15313

  • http/tests/security/cross-frame-access-child-explicit-domain-expected.txt: Added.
  • http/tests/security/cross-frame-access-child-explicit-domain.html: Added.
  • http/tests/security/cross-frame-access-custom-expected.txt:
  • http/tests/security/cross-frame-access-parent-explicit-domain-expected.txt: Added.
  • http/tests/security/cross-frame-access-parent-explicit-domain.html: Added.
  • http/tests/security/cross-frame-access-port-explicit-domain-expected.txt:
  • http/tests/security/cross-frame-access-protocol-explicit-domain-expected.txt:
  • http/tests/security/cross-frame-access-protocol-explicit-domain.html:
14:17 Changeset [28911] by mrowe@apple.com

2007-12-20 Rodney Dawes <dobey@wayofthemonkey.com>

Reviewed by Darin Adler.

Proxy includes of npruntime.h or npapi.h through npruntime_internal.h
Include stdio.h in npapi.h for the use of FILE with XP_UNIX defined
This is for building with X11, as some type and enum names conflict
with #define names in X11 headers.
http://bugs.webkit.org/show_bug.cgi?id=15669

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bindings/NP_jsobject.h:
  • bindings/npapi.h:
  • bindings/npruntime.cpp:
  • bindings/npruntime_impl.h:
  • bindings/npruntime_priv.h:
  • bindings/npruntime_internal.h:
  • bindings/testbindings.cpp:
  • bindings/c/c_class.h:
  • bindings/c/c_runtime.h:
  • bindings/c/c_utility.h:

2007-12-20 Rodney Dawes <dobey@wayofthemonkey.com>

Reviewed by Darin Adler.

Define XP_UNIX when building with plugins on X11.
Use new npruntime_internal.h instead of npruntime.h.
http://bugs.webkit.org/show_bug.cgi?id=15669

  • ForwardingHeaders/bindings/npruntime_internal.h
  • WebCore.pro:
  • html/HTMLPlugInElement.h:
14:16 Changeset [28910] by kmccullough@apple.com

WebKit/win:

Reviewed by Steve.

  • <rdar://5656485> Drosera: Win: Nightly does not reliably connect to WebKit.
  • Drosera and Safari need to use the same ProgIDs in order for CoCreateInstance to work properly. The most robust way to do this is for WebKit to dynamically publish those ProgIDs.
  • ForEachCoClass.cpp: Added. (setUseOpenSourceWebKit): (progIDForClass):
  • ForEachCoClass.h: Added functionality to publish ProgIDs.
  • WebKit.vcproj/WebKit.def: Exposed added functions for applications.
  • WebKit.vcproj/WebKit.vcproj: Added ForEachCoClass.cpp
  • WebKit.vcproj/WebKit_debug.def: Exposed added functions fori applications.

WebKitTools:

Reviewed by Steve.

  • <rdar://5656485> Drosera: Win: Nightly does not reliably connect to WebKit.
  • Drosera and Safari need to use the same ProgIDs in order for CoCreateInstance to work properly. The most robust way to do this is for WebKit to dynamically publish those ProgIDs.
  • Drosera/win/DebuggerClient.cpp: Use the published ProgIDs (DebuggerClient::createWebViewWithRequest):
  • Drosera/win/Drosera.cpp: Use the published ProgIDs and rename some statics. (Drosera::initUI): (Drosera::attach): (Drosera::attemptToCreateServerConnection):
  • Drosera/win/Drosera.vcproj/Drosera.vcproj: Fix a runtime failure.
  • Drosera/win/ServerConnection.cpp: Reformat the connection function and make use of the published ProgIDs. (ServerConnection::attemptToCreateServerConnection):
14:10 Changeset [28909] by slewis@apple.com

revert script check-ins that I didn't mean to commit

14:05 Changeset [28908] by slewis@apple.com

Any attribute name start with a unicode which like #xx00(x could be any hex number[0-9a-f]) will cause HTMLTokenizer parse error
Actually any unicode characters which great than 255 in attribute name will cause Webkit parse the attribute name wrong. So after comparing
the same scenario in IE 6/7, FireFox 2/3, Opera, we should treat those characters as part of attribute name.

  • html/HTMLTokenizer.cpp: (WebCore::HTMLTokenizer::parseEntity): Handle Unicode Entity Name by using ASCII version of findEntity. (WebCore::HTMLTokenizer::parseTag): Let type of ptr match type of cBuffer.
  • html/HTMLTokenizer.h: Change type of cBuffer from char to UChar.
13:57 Changeset [28907] by darin@apple.com

Same patch as last time with the test failures problem fixed.

  • kjs/function.cpp: (KJS::GlobalFuncImp::callAsFunction): Make sure to check the completion type from newExec to see if the execute raised an exception.
13:22 Changeset [28906] by sfalken@apple.com

New tag.

13:22 Changeset [28905] by sfalken@apple.com

Bump versions for submit

13:21 Changeset [28904] by mrowe@apple.com

Versioning.

13:21 Changeset [28903] by mrowe@apple.com

Merge r28057.

13:06 Changeset [28902] by kdecker@apple.com

Reviewed by Anders.


Fixed: <rdar://problem/5638288> REGRESSION: Flash movies show up in other tabs above the page (16373)

  • Plugins/WebBaseNetscapePluginView.mm: (-[WebBaseNetscapePluginView updateAndSetWindow]): QuickDraw plug-ins must manually be told when to stop writing to the window backing store. The problem was that change-set 28400 introduced an early return which prevented this necessary operation. The fix is to limit the scope of the early return to CG and GL plug-ins and to tweak the needsFocus check to prevent an exception from occurring in QuickDraw-based plug-ins.
13:01 Changeset [28901] by kmccullough@apple.com
  • <rdar://problem/5658317> REGRESSION: 20+ leaks seen on buildbots.
  • Build bot and leak fix.
  • DumpRenderTree/LayoutTestController.cpp: (pathToLocalResourceCallback):
12:40 Changeset [28900] by mrowe@apple.com

New tag.

12:33 Changeset [28899] by darin@apple.com
  • roll out that last change -- it was causing test failures; I'll check it back in after fixing them
12:10 Changeset [28898] by mrowe@apple.com

Versioning.

12:10 Changeset [28897] by mrowe@apple.com

Merge r28057.

12:08 Changeset [28896] by mrowe@apple.com

Versioning.

12:08 Changeset [28895] by mrowe@apple.com

Merge r28057.

12:05 Changeset [28894] by mrowe@apple.com

Merge r28057.

11:40 Changeset [28893] by mrowe@apple.com

New tag.

11:40 Changeset [28892] by mrowe@apple.com

New tag.

11:21 Changeset [28891] by eric@webkit.org

2007-12-20 Eric Seidel <eric@webkit.org>

Reviewed by Nikolas Zimmermann.

WebKit claims to support SVG feature strings it shouldn't
http://bugs.webkit.org/show_bug.cgi?id=15480

  • dom/DOMImplementation.cpp: (WebCore::isSVG10Feature): (WebCore::isSVG11Feature):
10:49 Changeset [28890] by sullivan@apple.com

Reviewed by Oliver and Geoff


  • fix <rdar://problem/5536858> Yellow highlight for find results is sometimes shorter than white "hole" behind it
  • rendering/RenderText.cpp: (WebCore::RenderText::addLineBoxRects): respect useSelectionHeight in all cases; we were only respecting it in one of the two cases
10:28 Changeset [28889] by mitz@apple.com

Reviewed by Darin Adler.

  • fix <rdar://problem/5656368> REGRESSION(3.0.4-ToT): Acid2 test fails to render anything
  • platform/win/ScrollViewWin.cpp: (WebCore::ScrollView::maximumScroll): Changed back to return the maximum scroll offsets even if scrolling is not allowed, because navigation and scrollTo should still work. (WebCore::ScrollView::wheelEvent): Added early return if scrolling is not allowed.
10:09 Changeset [28888] by alp@webkit.org

2007-12-17 Tony Chang <idealisms@gmail.com>

Reviewed by Darin.

Test: fast/text/reset-drag-on-mouse-down.html

09:42 Changeset [28887] by darin@apple.com

Reviewed by Eric.

SuSpider shows 2.4% speedup.

Stop using completions in the execution engine.
Instead, the completion type and label target are both
stored in the ExecState.

  • API/JSContextRef.cpp: Removed unneeded include of "completion.h".
  • bindings/runtime_method.cpp: Removed unused execute function.
  • bindings/runtime_method.h: Ditto.
  • kjs/ExecState.h: Added completionType, breakOrContinueTarget, setCompletionType, setNormalCompletion, setBreakCompletion, setContinueCompletion, setReturnValueCompletion, setThrowCompletion, setInterruptedCompletion, m_completionType, and m_breakOrContinueTarget.
  • kjs/completion.h: Removed constructor and getter for target for break and continue from Completion. This class is now only used for the public API to Interpreter and such.
  • kjs/date_object.h: Removed unused execute function.
  • kjs/function.cpp: (KJS::FunctionImp::callAsFunction): Removed some unneeded exception processing. Updated to call the new execute function and to get the completion type from the ExecState. Merged in the execute function, which repeated some of the same logic and was called only from here. (KJS::GlobalFuncImp::callAsFunction): More of the same for eval.
  • kjs/function.h: Removed execute.
  • kjs/interpreter.cpp: (KJS::Interpreter::evaluate): Added code to convert the result of execut into a Completion.
  • kjs/nodes.cpp: (KJS::Node::setErrorCompletion): Renamed from createErrorCompletion. Now sets the completion type in the ExecState. (KJS::Node::rethrowException): Now sets the completion type in the ExecState. (KJS::StatementNode::hitStatement): Now sets the completion type in the ExecState. (KJS::VarStatementNode::execute): Updated to put completion type in the ExecState instead of a Completion object. (KJS::statementListExecute): Ditto. Also changed the for loop to use indices instead of iterators. (KJS::BlockNode::execute): Updated return type. (KJS::EmptyStatementNode::execute): Updated to put completion type in the ExecState instead of a Completion object. (KJS::ExprStatementNode::execute): Ditto. (KJS::IfNode::execute): Ditto. (KJS::DoWhileNode::execute): Ditto. Also streamlined the logic a little to make the normal case a little faster and moved the end outside the loop so that "break" can do a break. (KJS::WhileNode::execute): Ditto. (KJS::ForNode::execute): Ditto. (KJS::ForInNode::execute): Ditto. (KJS::ContinueNode::execute): Updated to put completion type in the ExecState instead of a Completion object. (KJS::BreakNode::execute): Ditto. (KJS::ReturnNode::execute): Ditto. (KJS::WithNode::execute): Ditto. (KJS::CaseClauseNode::executeStatements): Ditto. Also renamed to have execute in its name to reflect the fact that it's a member of the same family of functions. (KJS::CaseBlockNode::executeBlock): Ditto. (KJS::SwitchNode::execute): Ditto. (KJS::LabelNode::execute): Ditto. (KJS::ThrowNode::execute): Ditto. (KJS::TryNode::execute): Ditto. (KJS::ProgramNode::execute): Ditto. (KJS::EvalNode::execute): Ditto. (KJS::FunctionBodyNode::execute): Ditto. (KJS::FuncDeclNode::execute): Ditto.
  • kjs/nodes.h: Renamed setErrorCompletion to createErrorCompletion, made hitStatement protected, changed return value of execute to a JSValue, renamed evalStatements to executeStatements, and evalBlock to executeBlock.
  • kjs/number_object.h: Removed unused execute function.
05:17 QtWebKitTodo edited by zecke2@selfish.org
(diff)
02:31 Changeset [28886] by ggaren@apple.com

Added Radar number.

  • kjs/nodes.cpp: (KJS::ProgramNode::processDeclarations):
01:41 Changeset [28885] by ggaren@apple.com

Linux build fix: config.h has to come first.

  • kjs/error_object.cpp:
01:32 Changeset [28884] by ggaren@apple.com

JavaScriptCore:

Reviewed by Oliver Hunt.


Optimized global access to global variables, using a symbol table.


SunSpider reports a 1.5% overall speedup, a 6.2% speedup on 3d-morph,
and a whopping 33.1% speedup on bitops-bitwise-and.

  • API/JSCallbackObjectFunctions.h: Replaced calls to JSObject:: with calls to Base::, since JSObject is not always our base class. This was always a bug, but the bug is even more apparent after some of my changes.

(KJS::::staticFunctionGetter): Replaced use of getDirect with call to
getOwnPropertySlot. Global declarations are no longer stored in the
property map, so a call to getDirect is insufficient for finding
override properties.

  • API/testapi.c:
  • API/testapi.js: Added test for the getDirect change mentioned above.
  • kjs/ExecState.cpp:
  • kjs/ExecState.h: Dialed back the optimization to store a direct pointer to the localStorage buffer. One ExecState can grow the global object's localStorage without another ExecState's knowledge, so ExecState can't store a direct pointer to the localStorage buffer unless/until we invent a way to update all the relevant ExecStates.
  • kjs/JSGlobalObject.cpp: Inserted the symbol table into get and put operations. (KJS::JSGlobalObject::reset): Reset the symbol table and local storage, too. Also, clear the property map here, removing the need for a separate call.
  • kjs/JSVariableObject.cpp:
  • kjs/JSVariableObject.h: Added support for saving localStorage and the symbol table to the back/forward cache, and restoring them.
  • kjs/function.cpp: (KJS::GlobalFuncImp::callAsFunction): Renamed progNode to evalNode because it's an EvalNode, not a ProgramNode.
  • kjs/lookup.h: (KJS::cacheGlobalObject): Replaced put with faster putDirect, since that's how the rest of lookup.h works. putDirect is safe here because cacheGlobalObject is only used for objects whose names are not valid identifiers.
  • kjs/nodes.cpp: The good stuff!

(KJS::EvalNode::processDeclarations): Replaced hasProperty with
the new hasOwnProperty, which is slightly faster.

  • kjs/object.h: Nixed clearProperties because clear() does this job now.
  • kjs/property_map.cpp:
  • kjs/property_map.h: More back/forward cache support.


  • wtf/Vector.h: (WTF::::grow): Added fast non-branching grow function. I used it in an earlier version of this patch, even though it's not used anymore.

JavaScriptGlue:

Build fix.

  • ForwardingHeaders/wtf/VectorTraits.h: Added.

WebCore:

Reviewed by Oliver Hunt.

Build support:

  • ForwardingHeaders/kjs/SymbolTable.h: Added.
  • ForwardingHeaders/wtf/VectorTraits.h: Added.
  • bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::customGetOwnPropertySlot): Replaced use of getDirectLocation with getOwnPropertySlot. getDirectLocation is no longer valid, since global declarations are not stored in the property map.

(WebCore::JSDOMWindow::customPut): Replaced use of JSObject::put with
JSGlobalObject::put. JSObject::put is no longer valid, since global
declarations are not stored in the property map.

  • bindings/js/kjs_window.cpp: Replaced JSObject:: calls with Base:: calls, since JSObject is not our base class. This was always a bug, but the bug is even more apparent after some of my changes.

(KJS::Window::clear): Removed call to clearProperties because
JSGlobalObject::reset takes care of that now.

  • history/CachedPage.cpp:
  • history/CachedPage.h: Added support for saving a symbol table and localStorage to the page cache, and restoring it.

WebKit/mac:

Reviewed by Oliver Hunt.

Build fix.

  • ForwardingHeaders/kjs/SymbolTable.h: Added.
  • ForwardingHeaders/wtf/VectorTraits.h: Added.

LayoutTests:

Reviewed by Oliver Hunt.


Added some tests to verify some of the changes I made while optimizing
global access to global variables.

  • fast/dom/Window/resources/window-property-clearing-iframe0.html: Added.
  • fast/dom/Window/resources/window-property-clearing-iframe1.html: Added.
  • fast/dom/Window/window-property-clearing-expected.txt: Added.
  • fast/dom/Window/window-property-clearing.html: Added.
  • fast/dom/getter-on-window-object2-expected.txt: Added.
  • fast/dom/getter-on-window-object2.html: Added.

Checked in failing results for these const tests. The symbol table
optimization broke const. (We didn't know this before because our only
tests used global variables.)

  • fast/js/const-expected.txt:
  • fast/js/kde/const-expected.txt:
  • fast/js/resources/for-in-avoid-duplicates.js: Fixed a typo I noticed. Not related to this patch.
  • fast/dom/Window/window-property-shadowing.html: Changed this test to use "this" instead of "window". The fact that "window" worked before, despite an overriding / shadowing var declaration, was a bug.

12/19/07:

22:40 Changeset [28883] by mitz@apple.com
  • remove two more tests that pass now due to changed font fallback
  • platform/win/Skipped:
22:29 BuildingGtk edited by chad.kittel@gmail.com
added Lunar-Linux's package information. (diff)
22:21 Changeset [28882] by mitz@apple.com

WebCore:

Reviewed by Darin Adler and Dave Hyatt.

  • Substitute the user's preferred standard font for an unknown primary font before falling back on the platform's last resort font

Cannot be tested in DumpRenderTree because it sets the standard font to
Times, which is also the hard-coded last resort font on Mac.

  • css/CSSFontSelector.cpp: (WebCore::CSSFontSelector::getFontData): Changed the early bail out condition to allow getting generic font families from settings even if there are not @font-face rules. Fixed a typo that mapped fantasy to cursive. Added a mapping from -webkit-standard to the standard family.
  • css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::CSSStyleSelector): Changed to always create a font selector. (WebCore::CSSRuleSet::addRulesFromSheet): (WebCore::CSSStyleSelector::applyProperty): Changed to always use the font selector.
  • css/CSSStyleSelector.h: (WebCore::CSSStyleSelector::fontSelector):
  • platform/graphics/FontCache.cpp: (WebCore::FontCache::getFontData): Try the user's preferred standard font before the platform's last resort font.

LayoutTests:

  • remove passing tests following the change to font fallback
  • platform/win/Skipped: Removed tests that failed only because they specified as primary font family a font family that was not available on Windows and therefore were rendered using the platform last resort font, Times New Roman. Now they are rendered using the 'standard' font family, which is set to Times on both Mac and Windows when running the tests.
20:24 Changeset [28881] by ddkilzer@apple.com

Make svn-apply/svn-unapply work with patches from git-format-patch.

Reviewed by Darin.

  • Scripts/svn-apply: (patch): If 'Index:' can't be found in the text passed in, print it out with a warning and return early.
  • Scripts/svn-unapply: (patch): Ditto.
19:03 Changeset [28880] by alp@webkit.org

2007-12-19 Sven Herzberg <sven@imendio.com>

Reviewed by Alp Toker.

Scaled font destruction takes place in FontData::platformDestroy(). No
need to do it in FontPlatformData::~FontPlatformData().

Destroying platform data in platformDestroy() is a convention we
borrow from the Mac and Win ports.

  • platform/graphics/gtk/FontPlatformDataGtk.cpp:
17:12 Changeset [28879] by alice.liu@apple.com

build fix (Windows)

Changed uint to unsigned int. uint caused Windows build breakage

  • page/Page.cpp: (WebCore::Page::markAllMatchesForText):
  • page/Page.h:
16:23 Changeset [28878] by alp@webkit.org

2007-12-19 Christian Dywan <christian@twotoasts.de>

Reviewed by Alp Toker.

http://bugs.webkit.org/show_bug.cgi?id=16222
[GTK] Implement inline search and highlighting of matching strings.

16:02 Changeset [28877] by ggaren@apple.com

Reviewed by Sam Weinig, Dan Bernstein.

Tiger build fix: restored some graphics code still needed on Tiger.

  • platform/graphics/GraphicsTypes.h:
  • platform/graphics/cg/GraphicsContextCG.cpp:
  • platform/graphics/mac/GraphicsContextMac.mm: (WebCore::GraphicsContext::setCompositeOperation):
15:22 Changeset [28876] by alp@webkit.org

2007-12-19 Alp Toker <alp@atoker.com>

Build fix for Pango < 1.18.0 breakage introduced in r28864. Use Fc and
the Pango backend API in these cases.

  • platform/graphics/gtk/FontPlatformDataGtk.cpp: (WebCore::FontPlatformData::FontPlatformData): (WebCore::FontPlatformData::~FontPlatformData):
14:51 Changeset [28875] by alice.liu@apple.com

WebCore:

Reviewed by Darin.

Fixed <rdar://problem/5592485> Safari crashed trying to get a motorcycle insurance quote
on Geico.com WebCore::Document::inPageCache()

Calling Node::willRemove on the focusedNode would immediately tell the document to remove
the focused node, and trigger JS events. This means that the document is mutated while
the engine is trying to tell all child nodes that it's about to removed. To avoid
crashing, we need to hold off on mutating the document until node traversal is finished.

  • dom/ContainerNode.cpp: (WebCore::ContainerNode::removeChild): (WebCore::ContainerNode::removeChildren):
  • dom/Node.cpp:
  • dom/Node.h: (WebCore::Node::willRemove):
  • loader/FrameLoader.cpp: (WebCore::FrameLoader::clear):

LayoutTests:

Reviewed by Darin.

Fixed <rdar://problem/5592485> Safari crashed trying to get a motorcycle insurance quote
on Geico.com WebCore::Document::inPageCache()

  • fast/events/nested-event-remove-node-crash-expected.txt: Added.
  • fast/events/nested-event-remove-node-crash.html: Added.
13:57 Changeset [28874] by aboule@apple.com

LayoutTests:

Reviewed by Dan Bernstein.

Adding tests for canvas compositing modes to make sure the results don't change after:
<rdar://problem/5640059> GraphicsContext::setCompositeOperation should use CGContextSetBlendMode

The following compositing modes don't pass however that is covered by another bug:
source-in
source-out
destination-in
destination-atop
copy
<rdar://problem/5651783> Some canvas tag compositing modes don't render correctly

  • fast/canvas/canvas-composite.html: Added.
  • platform/mac/fast/canvas/canvas-composite-expected.checksum: Added.
  • platform/mac/fast/canvas/canvas-composite-expected.png: Added.
  • platform/mac/fast/canvas/canvas-composite-expected.txt: Added.

WebCore:

Reviewed by Dan Bernstein.

Test: fast/canvas/canvas-composite.html

Fix for:
<rdar://problem/5640059> GraphicsContext::setCompositeOperation should use CGContextSetBlendMode

This fix makes setCompositeOperation consistent across all platforms that use CG.

The following compositing modes don't pass however that is covered by another bug:
source-in
source-out
destination-in
destination-atop
copy
<rdar://problem/5651783> Some canvas tag compositing modes don't render correctly

  • platform/graphics/GraphicsTypes.h:
  • platform/graphics/cg/GraphicsContextCG.cpp: (WebCore::GraphicsContext::setCompositeOperation):
  • platform/graphics/mac/GraphicsContextMac.mm:
  • platform/win/GraphicsContextWin.cpp:
13:45 Changeset [28873] by mitz@apple.com

WebCore:

Reviewed by Dave Hyatt.

  • fix <rdar://problem/5650045> REGRESSION: major layout problems in svn r28754 WebKit on Vox.com page

Test: fast/dynamic/subtree-boundary-percent-height.html

  • rendering/RenderObject.cpp: (WebCore::objectIsRelayoutBoundary): Do not allow overflows with percent heights because sometimes they compute to 'auto'.

LayoutTests:

Reviewed by Dave Hyatt.

  • test for <rdar://problem/5650045> REGRESSION: major layout problems in svn r28754 WebKit on Vox.com page
  • fast/dynamic/subtree-boundary-percent-height.html: Added.
  • platform/mac/fast/dynamic/subtree-boundary-percent-height-expected.checksum: Added.
  • platform/mac/fast/dynamic/subtree-boundary-percent-height-expected.png: Added.
  • platform/mac/fast/dynamic/subtree-boundary-percent-height-expected.txt: Added.
13:21 Changeset [28872] by hyatt@apple.com

Fix unsigned/enum problem on Win32. r=darin.

12:26 Changeset [28871] by bdakin@apple.com

Oops! Typo!

12:15 Changeset [28870] by hyatt@apple.com

Fix unsigned/enum problem on Win32. r=darin.

12:14 Changeset [28869] by hyatt@apple.com

Fix unsigned/enum problem on Win32. r=darin.

12:11 Changeset [28868] by weinig@apple.com

Reviewed by Maciej.

http://bugs.webkit.org/show_bug.cgi?id=16511
Speed up ClassNodeList and NamedNodeList by using the caching mechanism employed by ChildNodeList.

  • dom/ChildNodeList.cpp: Use the caching NodeList constructor to turn on caching. (WebCore::ChildNodeList::ChildNodeList):
  • dom/ClassNodeList.cpp: (WebCore::ClassNodeList::ClassNodeList):
  • dom/ClassNodeList.h:

Move getElementsByName and getElementsByClassName to Node so they
can use easily employ the caching already used by ChildNodeLists. In the case of
getElementsByClassName, this reduces code duplication in Element as well

  • dom/Document.cpp:
  • dom/Document.h:

Move getElementsByClassName to Node.

  • dom/Element.cpp:
  • dom/Element.h:
  • dom/NameNodeList.cpp: Use the caching NodeList constructor to turn on caching. (WebCore::NameNodeList::NameNodeList): (WebCore::NameNodeList::item):
  • dom/NameNodeList.h:

Add maps of caches for ClassNodeLists and NameNodeList to NodeListsNodeData.

  • dom/Node.cpp: (WebCore::TagNodeList::TagNodeList): (WebCore::Node::Node): (WebCore::Node::~Node): (WebCore::Node::childNodes): (WebCore::Node::registerNodeList): (WebCore::Node::getElementsByName): (WebCore::Node::getElementsByClassName):
  • dom/Node.h: Make m_nodeLists an OwnPtr. Moved getElementsByName and getElementsByClassName here

Allow subclasses to choose whether they want to receive the notifications using a new bit.

  • dom/NodeList.cpp: (WebCore::NodeList::NodeList):
  • dom/NodeList.h: (WebCore::NodeList::needsNotifications):
11:24 Changeset [28867] by hyatt@apple.com

Add support for GDI text on Windows.

11:13 Changeset [28866] by hyatt@apple.com

Add fourth preference value for GDI text font smoothing to WebKit.

10:41 Changeset [28865] by alp@webkit.org

2007-12-19 Alp Toker <alp@atoker.com>

Remove the cairo-ft pkg-config check. The GTK+ port doesn't use
cairo-ft directly following changes in r28864.

  • WebKit.pri:
10:00 Changeset [28864] by alp@webkit.org

2007-12-19 Sven Herzberg <sven@imendio.com>

Reviewed by Alp Toker.

Replace the fontconfig/freetype based font management with a pango
based one. Fixes:
http://bugs.webkit.org/show_bug.cgi?id=15229

  • platform/gtk/FontDataGtk.cpp (FontData::platformDestroy()): updated the platform specific destroy code (FontData::containsCharacters()): implemented font coverage with pango
  • platform/gtk/FontPlatformData.h: replaced fontconfig specific members with pango-specific ones
  • platform/gtk/FontPlatformDataGtk.cpp: added static members for the FontPlatformData class (FontPlatformData::FontPlatformData()): implemented the font-matching with a PangoFontDescription instead of an FcPattern; initialize the scaled font by using the API for PangoCairoFont (FontPlatformData::init()): initialize the PangoFontMap and set up a hash table to translate the font family name into a font family (FontPlatformData::isFixedPitch()): implemented by querying the PangoFontFamily (FontPlatformData::operator==): compare the FontPlatformData by comparing the font pointers or the described fonts
  • platform/gtk/GlyphPageTreeNodeGtk.cpp (pango_font_get_glyph()): added a function to query a glyph from a PangoFont (GlyphPage::fill()): implemented the fill function with Pango instead of fontconfig/freetype
09:36 Changeset [28863] by kevino@webkit.org

wx build process improvements, including added checks and outdated changes after the move to trunk.

Reviewed by Alp Toker

09:00 Changeset [28862] by alp@webkit.org

2007-12-19 Alp Toker <alp@atoker.com>

Reviewed by Holger Freyther.

Delete when Destroy functions are called to avoid leaks

This matches the Mac port.

  • WebCoreSupport/ChromeClientGtk.cpp:
  • WebCoreSupport/ContextMenuClientGtk.cpp:
  • WebCoreSupport/InspectorClientGtk.cpp:
08:55 Changeset [28861] by alp@webkit.org

2007-12-19 Alp Toker <alp@atoker.com>

Reviewed by Holger Freyther.

Improve graphics operator approximations

These changes match Cairo's own CG approximations.

  • platform/graphics/cairo/GraphicsContextCairo.cpp: (WebCore::toCairoOperator):
08:55 Changeset [28860] by alp@webkit.org

2007-12-19 Alp Toker <alp@atoker.com>

Reviewed by Holger Freyther.

Check the bounding box before doing a full hit test

  • platform/graphics/cairo/PathCairo.cpp: (WebCore::Path::contains):
01:10 Changeset [28859] by mrowe@apple.com

Build fix for non-Mac platforms. Move NodeInfo into its own header so that the YYTYPE declaration in grammar.h is able to declare members of that type.

00:41 Changeset [28858] by weinig@apple.com

Reviewed by Geoff.

Fix for <rdar://problem/5646478>
REGRESSION: fast/events/event-view-toString fails on Leopard

This fixes an issue where we were incorrectly setting the lastInPrototypeChain
for the JSDOMWindow (the global object) before a call to setPrototype overwrote
it. This fixes it by passing the prototype up the constructor chain so that it
is set before any calls can be made.

  • bindings/js/kjs_window.cpp: (KJS::Window::Window):
  • bindings/js/kjs_window.h:
  • bindings/scripts/CodeGeneratorJS.pm:
00:13 Changeset [28857] by oliver@apple.com

Make appendToVarDeclarationList static

RS=Weinig

12/18/07:

23:53 Changeset [28856] by bdakin@apple.com

WebCore:

Reviewed by Oliver.

Fix for <rdar://problem/5616982> SVGs with width and height 100%
fail to render when used as <img> or CSS image (16167)

This final part of the work fixes the <img> tag.

This is the real fix.

  • rendering/RenderImage.cpp: (WebCore::RenderImage::calcReplacedWidth): Set the container size on the image. Setting the container size only actually sticks if the values are non-zero, so if the container size really was set, use the imageSize that is calculated using the container size. If it did not stick but the image does have relative width (meaning that the container size is 0), set the width to 0 by hand. We want to avoid setting the width before we have a container size or we will end up incorrectly using the default size of 300x150. (WebCore::RenderImage::calcReplacedHeight): Same as above, but for height.

A few more pieces of information have to be exposed through cached
image to make this happen.

  • loader/CachedImage.cpp: (WebCore::CachedImage::usesImageContainerSize): As mentioned above, when setContainerSize() is called, the container size is only actually set if the values are non-zero. This call tells you if it was set. (WebCore::CachedImage::imageHasRelativeWidth): (WebCore::CachedImage::imageHasRelativeHeight):
  • loader/CachedImage.h:
  • platform/graphics/Image.h: (WebCore::Image::usesContainerSize):
  • svg/graphics/SVGImage.cpp: (WebCore::SVGImage::usesContainerSize):
  • svg/graphics/SVGImage.h:

LayoutTests:

Reviewed by Oliver.

Test for <rdar://problem/5616982> SVGs with width and height 100%
fail to render when used as <img> or CSS image (16167)

  • fast/images/resources/green-relative-size-rect.svg: Added.
  • fast/images/svg-as-relative-image.html: Added.
  • platform/mac/fast/images/svg-as-relative-image-expected.checksum: Added.
  • platform/mac/fast/images/svg-as-relative-image-expected.png: Added.
  • platform/mac/fast/images/svg-as-relative-image-expected.txt: Added.
23:42 Changeset [28855] by oliver@apple.com

Remove dead code due to removal of post-parse declaration discovery.

RS=Geoff.

Due to the removal of the declaration discovery pass after parsing we
no longer need any of the logic used for that discovery.

23:42 Changeset [28854] by oliver@apple.com

Replace post-parse pass to find declarations with logic in the parser itself

Reviewed by Geoff.

Instead of finding declarations in a pass following the initial parsing of
a program, we incorporate the logic directly into the parser. This lays
the groundwork for further optimisations (such as improving performance in
declaration expressions -- var x = y; -- to match that of standard assignment)
in addition to providing a 0.4% performance improvement in SunSpider.

21:04 Changeset [28853] by mrowe@apple.com

Versioning.

21:02 Changeset [28852] by mrowe@apple.com

New tag.

21:02 Changeset [28851] by mrowe@apple.com

New tag.

20:58 Changeset [28850] by mrowe@apple.com

Fix typo in hosted SunSpider page.

20:54 Changeset [28849] by sfalken@apple.com

Correct link to Visual Studio Express 2005.
Old link points to 2008.


Reviewed by Mark.

  • building/tools.html:
19:11 Changeset [28848] by darin@apple.com
  • Scripts/make-js-test-wrappers: Don't generate a wrapper for select-options-remove.js.
18:58 Changeset [28847] by ddkilzer@apple.com

2007-12-18 Xan Lopez <xan@gnome.org>

Reviewed by Geoff.

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):

Use less strict memory operand constraint on inline asm generation.
PLATFORM(DARWIN) left unpatched due to Apple's GCC bug.

Patch by David Kilzer <ddkilzer@webkit.org>

18:12 Changeset [28846] by mrowe@apple.com

Remove outdated and non-functioning project files for the Apollo port. Rubber-stamped by Maciej Stachowiak and Chris Brichford.

17:41 Changeset [28845] by mitz@apple.com

Reviewed by John Sullivan.

  • remove passing test and reclassify one failing test
  • platform/win/Skipped: Removed fast/text/international/002.html.
17:12 Changeset [28844] by weinig@apple.com

Reviewed by Geoffrey.

  • http/tests/security/cross-frame-access-history-expected.txt:
  • http/tests/security/cross-frame-access-history.html:
16:58 Changeset [28843] by sfalken@apple.com

Add script to run Drosera as part of the nightly.


Reviewed by Kevin M.

  • Scripts/run-drosera.cmd: Added.
16:35 Changeset [28842] by darin@apple.com
  • Scripts/do-webcore-rename: Remove a stray K.
16:34 Changeset [28841] by darin@apple.com
  • fix Windows build
  • pcre/pcre_exec.cpp: (jsRegExpExecute): Change back from false/true to 0/1 -- I probably should not have deleted MATCH_MATCH and MATCH_NOMATCH, but I'm going to leave them out.
15:40 Changeset [28840] by darin@apple.com
  • Scripts/do-webcore-rename: Plan more renaming.
15:38 Changeset [28839] by sfalken@apple.com

<rdar://problem/5649911> REGRESSION (304-306A9): Typing 'p' in popup menu for type-to-select brings up Safari Help


Need to translate the char back into a key code for posting our WM_KEYDOWN.


Reviewed by Ada.

  • platform/win/PopupMenuWin.cpp: (WebCore::PopupWndProc):
14:56 Changeset [28838] by sfalken@apple.com

<rdar://problem/5651534> REGRESSION(r28764-r28765): GDI leak drawing text when no appropriate font is available


Our captured metafile from Uniscribe may contain multiple calls to CreateFontIndirect.
Only create a font with the last one.


Reviewed by Mitz, Darin.

  • platform/graphics/win/FontCacheWin.cpp: (WebCore::metaFileEnumProc): (WebCore::FontCache::getFontDataForCharacters):
14:32 Changeset [28837] by darin@apple.com
  • fix failing regression test
  • fast/regex/resources/TEMPLATE.html: Updated this template -- I accidentally landed the one that was copied without updating the paths.
  • fast/regex/slow.html: Regenerated.
13:50 Changeset [28836] by alice.liu@apple.com

Reviewed by Darin.

Fixed <rdar://problem/5646454> REGRESSION: dom/xhtml/level2/html/HTMLDocument12 fails on Leopard

  • fast/cookies/local-file-can-set-cookies.html: cookies are matched by domain and path, and since layout tests are file URLs, they all match on domain. setting a cookie without specifying the path will make CFNetwork pick up the path from the URL automatically. Since fast/cookies/local-file-can-set-cookies.html set a specific path of /, that cookie will be set for EVERY local file loaded in Safari. removing that component from the cookie string will fix the problem.
13:37 Changeset [28835] by alp@webkit.org

2007-12-17 Brent Fulgham <bfulgham@gmail.com>

Reviewed by Darin.

http://bugs.webkit.org/show_bug.cgi?id=16464
Modify WebCore to use win32 thread primitives

Updates to support native windows threading primitives
rather than pthreads emulation library.

  • WebCore.vcproj/WebCore.vcproj:
  • config.h:
  • platform/Threading.h:
  • platform/win/MutexWin.cpp: Added. (WebCore::Mutex::Mutex): (WebCore::Mutex::~Mutex): (WebCore::Mutex::lock): (WebCore::Mutex::tryLock): (WebCore::Mutex::unlock):
  • platform/win/ThreadConditionWin.cpp: Added. (WebCore::ThreadCondition::ThreadCondition): (WebCore::ThreadCondition::~ThreadCondition): (WebCore::ThreadCondition::wait): (WebCore::ThreadCondition::signal): (WebCore::ThreadCondition::broadcast):
  • platform/win/ThreadingWin.cpp: (WebCore::threadMapMutex): (WebCore::threadMap): (WebCore::storeThreadHandleByIdentifier): (WebCore::identifierByThreadHandle): (WebCore::threadHandleForIdentifier): (WebCore::clearThreadHandleForIdentifier): (WebCore::createThread): (WebCore::waitForThreadCompletion): (WebCore::detachThread): (WebCore::currentThread):
13:36 Changeset [28834] by alp@webkit.org

2007-12-18 Rodney Dawes <dobey@wayofthemonkey.com>

Reviewed by Darin Adler.

Handle EINTR when set by select() and try the select() again
http://bugs.webkit.org/show_bug.cgi?id=16071

  • platform/network/curl/ResourceHandleManager.cpp: (ResourceHandleManager::downloadTimerCallback):
11:30 Changeset [28833] by darin@apple.com

JavaScriptCore:

Reviewed by Geoff.

Test: fast/regex/slow.html

Slows down SunSpider a bit (about 1.01x); filed a bug to follow up on that:
http://bugs.webkit.org/show_bug.cgi?id=16503

  • pcre/pcre.h: Changed name of error code to not specifically mention "recursion".
  • pcre/pcre_exec.cpp: (match): Replaced the depth limit, MATCH_RECURSION_LIMIT, with a total match looping limit, matchLimit. Also eliminated the constants for MATCH_MATCH and MATCH_NOMATCH, since they are just true and false (1 and 0). (jsRegExpExecute): More of the MATCH_MATCH change.

LayoutTests:

Reviewed by Geoff.

  • fast/regex/resources: Added.
  • fast/regex/resources/TEMPLATE.html: Copied from fast/js/resources/TEMPLATE.html.
  • fast/regex/resources/slow.js: Added.
  • fast/regex/slow-expected.txt: Added.
  • fast/regex/slow.html: Added.
10:58 Changeset [28832] by mitz@apple.com

Reviewed by Dave Hyatt.

  • avoid the simplified Chinese font linking code for characters that are not in any Windows code page
  • platform/graphics/win/FontCacheWin.cpp: (WebCore::FontCache::getFontDataForCharacters):
10:35 Changeset [28831] by mitz@apple.com

Reviewed by John Sullivan.

  • remove passing test
  • platform/win/Skipped: Removed fast/text/international/wrap-CJK-001.html
10:19 Changeset [28830] by beidson@apple.com

Reviewed by Adele

<rdar://problem/5525770> REGRESSION: HTTP Auth protected favicon request results in a password sheet

Some http-auth protected sites have the main resource(s) unprotected, but many subresources are
protected by authentication. Occasionally one can view the main page of a site but the favicon
is behind the iron curtain - in these cases, we should *not* prompt for a username and password
solely for the favicon.

  • loader/ResourceLoader.h: Make didReceiveAuthenticationChallenge virtual
  • loader/SubresourceLoader.cpp: (WebCore::SubresourceLoader::didReceiveAuthenticationChallenge): Now that this method is virtual from ResourceLoader, SubresourceLoader can override. First call to the SubresourceLoaderClient. If they cancel the resource load, return early. Otherwise, let ResourceLoader work its magic (resulting in the auth sheet coming down)
  • loader/SubresourceLoader.h:
  • loader/SubresourceLoaderClient.h: (WebCore::SubresourceLoaderClient::didReceiveAuthenticationChallenge):
  • loader/icon/IconLoader.cpp: (WebCore::IconLoader::didReceiveAuthenticationChallenge): Cancel the resource load, since we should never prompt the user for credentials just for a favicon.
  • loader/icon/IconLoader.h:
09:07 Changeset [28829] by sullivan@apple.com

Reviewed by Brady


  • fixed <rdar://problem/5652380> Initial prompt shows "" for databases with no user-visible name
  • storage/DatabaseTracker.cpp: (WebCore::DatabaseTracker::canEstablishDatabase): pass "name" instead of "displayName" if there's no displayName
01:27 Changeset [28828] by mjs@apple.com

Reviewed by Eric.


  • give an extra digit of precision for small differences.
  • resources/sunspider-compare-results.js:

12/17/07:

22:01 Changeset [28827] by mitz@apple.com

Reviewed by Maciej Stachowiak.

  • restore ButtonFace and ThreeDFace to their previous values for non-Mac platforms. The Mac port also uses the same values for now instead of NSColor-based ones.
  • rendering/RenderTheme.cpp: (WebCore::RenderTheme::systemColor):
21:24 Changeset [28826] by mrowe@apple.com

2007-12-17 Rodney Dawes <dobey@wayofthemonkey.com>

Reviewed by Maciej Stachowiak.

Define WTF_USE_NPOBJECT and WTF_USE_JAVASCRIPTCORE_BINDINGS for GTK+
Add required Frame::createScriptInstanceForWidget to FrameGtk

  • config.h:
  • page/gtk/FrameGtk.cpp (Frame::createScriptInstanceForWidget):
20:39 Changeset [28825] by mjs@apple.com

SunSpider:

Reviewed by Eric.


  • work around IE layout bugs
  • hosted/sunspider.css:

WebKitSite:

Reviewed by Eric.


  • work around IE layout bugs
  • perf/sunspider-0.9/sunspider.css:
18:21 Changeset [28824] by alice.liu@apple.com

Reviewed by Adam.

Fixed <rdar://5566435> window with no scrollbars can be scrolled

  • platform/win/ScrollViewWin.cpp: (WebCore::ScrollView::maximumScroll): corrected maximumScroll() to account for scrolling not allowed. (WebCore::ScrollView::wheelEvent):
18:10 Changeset [28823] by alice.liu@apple.com

Reviewed by Adam.

Test for <rdar://problem/5566435> window with no scrollbars can still be scrolled with wheelevent

  • fast/events/attempt-scroll-with-no-scrollbars-expected.txt: Added.
  • fast/events/attempt-scroll-with-no-scrollbars.html: Added.
  • platform/mac/Skipped: Adding to mac Skipped list because of <rdar://problem/5643675> window.scrollTo scrolls a window with no scrollbars
  • platform/win/Skipped: Adding to win Skipped list because of <rdar://problem/5132009> Windows DRT does not support multiple windows
17:30 Changeset [28822] by darin@apple.com

Reviewed by Sam.

  • <rdar://4516170> Back/Forward Cache on Windows
  • WebFrame.cpp: (WebFrame::forceLayout): Implemented this. Just calling through to Frame::forceLayout matches the Mac pretty well and should be enough for now. Without this we won't repaint the new page when we go back and forward. (WebFrame::dispatchWillSubmitForm): Use COMPtr's AdoptCOM constructor instead of the adoptRef function. (WebFrame::restoreViewState): Removed unneeded notImplemented() call. This is implemented as much as it needs to be. (WebFrame::shouldGoToHistoryItem): Ditto. (WebFrame::saveViewStateToItem): Ditto. (WebFrame::canCachePage): Ditto, also changed it to return true. This is what was preventing the back/forward cache from running, and there's no need for any additional checks in the Windows version.
  • WebView.cpp: (PreferencesChangedOrRemovedObserver::onNotify): Fix backwards null check that was preventing this notification from ever being sent, which in turn meant that page cache had a capacity of 0. (WebView::initWithFrame): Removed unneeded setUsesPageCache(false) code. This actually was ineffective and ended up doing no harm, but we don't need it.
17:07 Known incompatibilities between open-source WebKit and Safari edited by ddkilzer@apple.com
(diff)
17:05 Known incompatibilities between open-source WebKit and Safari edited by ddkilzer@apple.com
(diff)
15:10 Changeset [28821] by sfalken@apple.com

Merged r28816.

14:54 Changeset [28820] by darin@apple.com
  • disabling this test until we can find a way to make it pass on diverse machines
  • fast/css/css2-system-color.html: Removed.
  • fast/css/css2-system-color.html-disabled: Copied from fast/css/css2-system-color.html.
13:31 Changeset [28819] by sfalken@apple.com

New tag.

12:54 Changeset [28818] by alp@webkit.org

2007-12-14 Juan A. Suarez Romero <jasuarez@igalia.com>

Reviewed by Alp Toker.

http://bugs.webkit.org/show_bug.cgi?id=16042
[GTK] Eliminate webkit_init()

Move webkit initialization to WebView class init.

12:51 Changeset [28817] by alp@webkit.org

2007-12-17 Luca Bruno <lethalman88@gmail.com>

Reviewed by Alp Toker.

http://bugs.webkit.org/show_bug.cgi?id=13542
gdklauncher doesnt change URL in adress GTKEntry.

Let DOMDocument observers do their work before emitting title-changed.
The load-committed signal has been added for both the view and the frame.

12:14 QtWebKitTodo edited by zander@kde.org
(diff)
11:48 Changeset [28816] by jhoneycutt@apple.com

2007-12-17 Jon Honeycutt <jhoneycutt@apple.com>

Reviewed by Darin.

<rdar://problem/5651291> REGRESSION: Flash content doesn't display
(www.adobe.com)

We were passing NPEvent instead of NPEvent* to NPP_HandleEvent.

  • plugins/win/PluginViewWin.cpp: (WebCore::PluginViewWin::dispatchNPEvent): Changed to take NPEvent&, not NPEvent* (WebCore::PluginViewWin::paint): Pass NPEvent, not NPEvent* (WebCore::PluginViewWin::handleKeyboardEvent): same (WebCore::PluginViewWin::handleMouseEvent): same
  • plugins/win/PluginViewWin.h:
11:44 Changeset [28815] by andersca@apple.com

Fix argument to window.open.

  • http/tests/misc/window-open-then-write.html:
10:42 Changeset [28814] by mrowe@apple.com

2007-12-17 Mark Rowe <mrowe@apple.com>

Update test results after r28812.

  • platform/mac-tiger/fast/css/css2-system-color-expected.txt:
  • platform/mac/fast/css/css2-system-color-expected.txt:
10:34 Changeset [28813] by ap@webkit.org

Reviewed by Darin.

Live to the promise of never making AppKit special character codes visible via DOM.

Test: fast/events/arrow-keys-on-body.html

  • page/EventHandler.cpp: (WebCore::EventHandler::keyEvent): Check for empty keypress characters after disambiguation, to let quirks-aware code strip special charactrers.
  • platform/mac/KeyEventMac.mm: (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent): If not in keyboard event quirks mode, remove the text if it's a special character.
10:21 Changeset [28812] by mrowe@apple.com

2007-12-17 Mark Rowe <mrowe@apple.com>

Reviewed by Darin Adler.

Fix incorrect array size and incorrect array index in convertNSColorToColor.

  • rendering/RenderThemeMac.mm: (WebCore::convertNSColorToColor):
09:53 Changeset [28811] by darin@apple.com

Reviewed by Mark Rowe.

  • storage/DatabaseThread.cpp: (WebCore::DatabaseThread::dispatchNextTaskIdentifier): Use a RefPtr for the database because there's no guarantee it won't lose its last reference otherwise.
09:09 Changeset [28810] by mitz@apple.com

Reviewed by Maciej Stachowiak.

  • fix <rdar://problem/5333260> Some Chinese characters in Text Encoding menu are bold, others are not and <rdar://problem/5280188> Chinese text looks worse on Safari for Windows cf. Safari for Mac
  • platform/graphics/win/FontCacheWin.cpp: (WebCore::FontCache::getFontDataForCharacters): To ensure that font linking gives consistent results for characters that are exclusive to the simplified Chinese code page and characters that belong to that code page and other code pages, always ask to map to simplified Chinese alone first.
08:18 Changeset [28809] by alp@webkit.org

2007-12-17 Christian Dywan <christian@twotoasts.de>

Reviewed by Alp Toker.

http://bugs.webkit.org/show_bug.cgi?id=16378
Implement Icon for Gtk

Icon provides a GdkPixbuf containing a themed icon.
The icon theme is probed for an icon name according to the
Icon Naming Specification or conventional Gnome icon names respectively.

See http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html

  • platform/graphics/Icon.h:
  • platform/graphics/gtk/IconGtk.cpp: (WebCore::Icon::~Icon): (WebCore::lookupIconName): (WebCore::Icon::newIconForFile): (WebCore::Icon::paint):
03:55 Changeset [28808] by mjs@apple.com

Tag SunSpider 0.9.

03:55 Changeset [28807] by mjs@apple.com

Remove bad tag

03:50 Changeset [28806] by mjs@apple.com

SunSpider:

Reviewed by Mark.


  • fix compare feature
  • hosted/sunspider-results.html:

WebKitSite:

Reviewed by Mark.


  • fix compare feature
  • perf/sunspider-0.9/sunspider-results.html:
03:23 QtWebKitTodo edited by hausmann@webkit.org
(diff)
01:44 Changeset [28805] by mjs@apple.com

Tag SunSpider 0.9.

01:44 Changeset [28804] by mjs@apple.com

Remove bad tag

01:44 Changeset [28803] by mjs@apple.com

Rubber stamped by Mark.


  • Add a copy of SunSpider 0.9 to the site
  • perf: Added.
  • perf/sunspider-0.9: Added.
  • perf/sunspider-0.9/3d-cube.html: Added.
  • perf/sunspider-0.9/3d-morph.html: Added.
  • perf/sunspider-0.9/3d-raytrace.html: Added.
  • perf/sunspider-0.9/access-binary-trees.html: Added.
  • perf/sunspider-0.9/access-fannkuch.html: Added.
  • perf/sunspider-0.9/access-nbody.html: Added.
  • perf/sunspider-0.9/access-nsieve.html: Added.
  • perf/sunspider-0.9/bitops-3bit-bits-in-byte.html: Added.
  • perf/sunspider-0.9/bitops-bits-in-byte.html: Added.
  • perf/sunspider-0.9/bitops-bitwise-and.html: Added.
  • perf/sunspider-0.9/bitops-nsieve-bits.html: Added.
  • perf/sunspider-0.9/controlflow-recursive.html: Added.
  • perf/sunspider-0.9/crypto-aes.html: Added.
  • perf/sunspider-0.9/crypto-md5.html: Added.
  • perf/sunspider-0.9/crypto-sha1.html: Added.
  • perf/sunspider-0.9/date-format-tofte.html: Added.
  • perf/sunspider-0.9/date-format-xparb.html: Added.
  • perf/sunspider-0.9/math-cordic.html: Added.
  • perf/sunspider-0.9/math-partial-sums.html: Added.
  • perf/sunspider-0.9/math-spectral-norm.html: Added.
  • perf/sunspider-0.9/regexp-dna.html: Added.
  • perf/sunspider-0.9/string-base64.html: Added.
  • perf/sunspider-0.9/string-fasta.html: Added.
  • perf/sunspider-0.9/string-tagcloud.html: Added.
  • perf/sunspider-0.9/string-unpack-code.html: Added.
  • perf/sunspider-0.9/string-validate-input.html: Added.
  • perf/sunspider-0.9/sunspider-analyze-results.js: Added.
  • perf/sunspider-0.9/sunspider-compare-results.js: Added.
  • perf/sunspider-0.9/sunspider-driver.html: Added.
  • perf/sunspider-0.9/sunspider-record-result.js: Added.
  • perf/sunspider-0.9/sunspider-results.html: Added.
  • perf/sunspider-0.9/sunspider-test-prefix.js: Added.
  • perf/sunspider-0.9/sunspider.css: Added.
  • perf/sunspider-0.9/sunspider.html: Added.
01:43 Changeset [28802] by mjs@apple.com

Tag SunSpider 0.9.

01:43 Changeset [28801] by mjs@apple.com

Reviewed by Mark.


  • Change the format of the output URL to be shorter, to meet IE constraints
  • hosted/sunspider-driver.html:
  • hosted/sunspider-results.html:
01:19 Changeset [28800] by mjs@apple.com

Tag SunSpider 0.9.

00:56 Changeset [28799] by darin@apple.com
  • speculative build fix for non-gcc platforms
  • pcre/pcre_exec.cpp: (match): Remove unused cases from return switch.

12/16/07:

23:19 Changeset [28798] by weinig@apple.com

Reviewed by Mitz.

Fix for http://bugs.webkit.org/show_bug.cgi?id=16466
Move the JS Location object to its own file

  • Move Location into its own file and rename it JSLocation.
  • DerivedSources.make:
  • WebCore.pro:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • WebCoreSources.bkl:
  • bindings/js/JSDocumentCustom.cpp:
  • bindings/js/JSLocation.cpp: Copied from WebCore/bindings/js/kjs_window.cpp. (WebCore::): (WebCore::JSLocation::JSLocation): (WebCore::JSLocation::getValueProperty): (WebCore::JSLocation::getOwnPropertySlot): (WebCore::JSLocation::put): (WebCore::JSLocationProtoFuncReplace::callAsFunction): (WebCore::JSLocationProtoFuncReload::callAsFunction): (WebCore::JSLocationProtoFuncAssign::callAsFunction): (WebCore::JSLocationProtoFuncToString::callAsFunction):
  • bindings/js/JSLocation.h: Copied from WebCore/bindings/js/kjs_window.h. (WebCore::JSLocation::): (WebCore::JSLocation::frame): (WebCore::JSLocation::classInfo):
  • bindings/js/kjs_window.cpp: (KJS::Window::location):
  • bindings/js/kjs_window.h:
  • history/CachedPage.cpp:
22:26 Changeset [28797] by mitz@apple.com

Reviewed by Sam Weinig.

  • make 'cursor: copy' and 'cursor: none' work.

Already covered by manual-tests/cursor.html

  • rendering/RenderStyle.h: Increase the _cursor_style field to 6 bits, needed for the 33rd and 34th cursor values.
22:01 Changeset [28796] by mrowe@apple.com

Speculative build fix for non-Mac platforms.

22:00 Changeset [28795] by mrowe@apple.com

Refactor Mac plugin stream code to use the shared NetscapePlugInStreamLoader implementation.

Reviewed by Maciej Stachowiak.

20:50 Changeset [28794] by weinig@apple.com

Reviewed by Maciej.

Yet more of http://bugs.webkit.org/show_bug.cgi?id=16385
Cleanup kjs_window

  • Move ScheduledAction into its own file and put it in the WebCore namespace.
  • WebCore.pro:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • WebCoreSources.bkl:
  • bindings/js/PausedTimeouts.cpp:
  • bindings/js/PausedTimeouts.h:
  • bindings/js/ScheduledAction.cpp: Copied from bindings/js/kjs_window.cpp. (WebCore::ScheduledAction::ScheduledAction): (WebCore::ScheduledAction::execute):
  • bindings/js/ScheduledAction.h: Copied from bindings/js/kjs_window.h. (WebCore::ScheduledAction::ScheduledAction):
  • bindings/js/kjs_window.cpp: (KJS::DOMWindowTimer::DOMWindowTimer): (KJS::DOMWindowTimer::action): (KJS::DOMWindowTimer::takeAction): (KJS::Window::installTimeout): (KJS::Window::timerFired):
  • bindings/js/kjs_window.h:
20:19 Changeset [28793] by darin@apple.com

Reviewed by Maciej.

  • http://bugs.webkit.org/show_bug.cgi?id=16438
  • removed some more unused code
  • changed quite a few more names to WebKit-style
  • moved more things out of pcre_internal.h
  • changed some indentation to WebKit-style
  • improved design of the functions for reading and writing 2-byte values from the opcode stream (in pcre_internal.h)
  • pcre/dftables.cpp: (main): Added the kjs prefix a normal way in lieu of using macros.
  • pcre/pcre_compile.cpp: Moved some definitions here from pcre_internal.h. (errorText): Name changes, fewer typedefs. (checkEscape): Ditto. Changed uppercase conversion to use toASCIIUpper. (isCountedRepeat): Name change. (readRepeatCounts): Name change. (firstSignificantOpcode): Got rid of the use of OP_lengths, which is very lightly used here. Hard-coded the length of OP_BRANUMBER. (firstSignificantOpcodeSkippingAssertions): Ditto. Also changed to use the advanceToEndOfBracket function. (getOthercaseRange): Name changes. (encodeUTF8): Ditto. (compileBranch): Name changes. Removed unused after_manual_callout and the code to handle it. Removed code to handle OP_ONCE since we never emit this opcode. Changed to use advanceToEndOfBracket in more places. (compileBracket): Name changes. (branchIsAnchored): Removed code to handle OP_ONCE since we never emit this opcode. (bracketIsAnchored): Name changes. (branchNeedsLineStart): More fo the same. (bracketNeedsLineStart): Ditto. (branchFindFirstAssertedCharacter): Removed OP_ONCE code. (bracketFindFirstAssertedCharacter): More of the same. (calculateCompiledPatternLengthAndFlags): Ditto. (returnError): Name changes. (jsRegExpCompile): Ditto.
  • pcre/pcre_exec.cpp: Moved some definitions here from pcre_internal.h. (matchRef): Updated names. Improved macros to use the do { } while(0) idiom so they expand to single statements rather than to blocks or multiple statements. And refeactored the recursive match macros. (MatchStack::pushNewFrame): Name changes. (getUTF8CharAndIncrementLength): Name changes. (match): Name changes. Removed the ONCE opcode. (jsRegExpExecute): Name changes.
  • pcre/pcre_internal.h: Removed quite a few unneeded includes. Rewrote quite a few comments. Removed the macros that add kjs prefixes to the functions with external linkage; instead renamed the functions. Removed the unneeded typedefs pcre_uint16, pcre_uint32, and uschar. Removed the dead and not-all-working code for LINK_SIZE values other than 2, although we aim to keep the abstraction working. Removed the OP_LENGTHS macro. (put2ByteValue): Replaces put2ByteOpcodeValueAtOffset. (get2ByteValue): Replaces get2ByteOpcodeValueAtOffset. (put2ByteValueAndAdvance): Replaces put2ByteOpcodeValueAtOffsetAndAdvance. (putLinkValueAllowZero): Replaces putOpcodeValueAtOffset; doesn't do the addition, since a comma is really no better than a plus sign. Added an assertion to catch out of range values and changed the parameter type to int rather than unsigned. (getLinkValueAllowZero): Replaces getOpcodeValueAtOffset. (putLinkValue): New function that most former callers of the putOpcodeValueAtOffset function can use; asserts the value that is being stored is non-zero and then calls putLinkValueAllowZero. (getLinkValue): Ditto. (putLinkValueAndAdvance): Replaces putOpcodeValueAtOffsetAndAdvance. No caller was using an offset, which makes sense given the advancing behavior. (putLinkValueAllowZeroAndAdvance): Ditto. (isBracketOpcode): Added. For use in an assertion. (advanceToEndOfBracket): Renamed from moveOpcodePtrPastAnyAlternateBranches, and removed comments about how it's not well designed. This function takes a pointer to the beginning of a bracket and advances to the end of the bracket.
  • pcre/pcre_tables.cpp: Updated names.
  • pcre/pcre_ucp_searchfuncs.cpp: (kjs_pcre_ucp_othercase): Ditto.
  • pcre/pcre_xclass.cpp: (getUTF8CharAndAdvancePointer): Ditto. (kjs_pcre_xclass): Ditto.
  • pcre/ucpinternal.h: Ditto.
  • wtf/ASCIICType.h: (WTF::isASCIIAlpha): Added an int overload, like the one we already have for isASCIIDigit. (WTF::isASCIIAlphanumeric): Ditto. (WTF::isASCIIHexDigit): Ditto. (WTF::isASCIILower): Ditto. (WTF::isASCIISpace): Ditto. (WTF::toASCIILower): Ditto. (WTF::toASCIIUpper): Ditto.
20:08 Changeset [28792] by alp@webkit.org

2007-12-16 Alp Toker <alp@atoker.com>

Reviewed by Maciej.

http://bugs.webkit.org/show_bug.cgi?id=16356
[GTK] Integrate GStreamer video with the graphics backend

Integrate the GStreamer media backend with the Cairo graphics backend.
There are still some issues: Data is copied more often than necessary,
and repaint() is not called, causing transformed video not to update
sometimes.

  • WebCore.pro:
  • platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp: (WebCore::MediaPlayerPrivate::MediaPlayerPrivate): (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate): (WebCore::MediaPlayerPrivate::currentTime): (WebCore::MediaPlayerPrivate::setEndTime): (WebCore::MediaPlayerPrivate::seeking): (WebCore::MediaPlayerPrivate::naturalSize): (WebCore::MediaPlayerPrivate::setMuted): (WebCore::MediaPlayerPrivate::setRect): (WebCore::MediaPlayerPrivate::setVisible): (WebCore::MediaPlayerPrivate::repaint): (WebCore::MediaPlayerPrivate::paint): (WebCore::MediaPlayerPrivate::createGSTPlayBin):
  • platform/graphics/gtk/MediaPlayerPrivateGStreamer.h:
  • platform/graphics/gtk/VideoSinkGStreamer.cpp: Added. (webkit_video_sink_base_init): (webkit_video_sink_init): (webkit_video_sink_idle_func): (webkit_video_sink_render): (webkit_video_sink_set_caps): (webkit_video_sink_dispose): (webkit_video_sink_finalize): (webkit_video_sink_set_property): (webkit_video_sink_get_property): (webkit_video_sink_stop): (webkit_video_sink_class_init): (webkit_video_sink_new): (webkit_video_sink_set_surface): (plugin_init):
  • platform/graphics/gtk/VideoSinkGStreamer.h: Added.
18:09 Changeset [28791] by mrowe@apple.com

2007-12-16 Mark Rowe <mrowe@apple.com>

Mac build fix.

  • WebCore.xcodeproj/project.pbxproj: Remove NetscapePlugInStreamLoader.cpp from the WebCore target. Mac currently has its own implementation in NetscapePlugInStreamLoaderMac.mm which conflicts with the new shared implementation.
17:50 Changeset [28790] by mrowe@apple.com

2007-12-16 Rodney Dawes <dobey@wayofthemonkey.com>

Reviewed by Maciej Stachowiak.

http://bugs.webkit.org/show_bug.cgi?id=16389
Bug 16389: Common Implementation of NetscapePlugInStreamLoader

  • WebCore.vcproj/WebCore.vcproj: Remove NetscapePlugInStreamLoaderWin.cpp.
  • loader/NetscapePlugInStreamLoader.cpp: Copy method implementations from NetscapePlugInStreamLoaderWin.cpp.
  • loader/win/NetscapePlugInStreamLoaderWin.cpp: Removed.
17:35 Changeset [28789] by mrowe@apple.com

2007-12-16 Dimitri Glazkov <dimitri@glazkov.com>

Reviewed by Adam Roben.

Remove the double-quotes around the PATH variable value, in order to make it work in Windows shell.

  • FindSafari/FindSafari.cpp: (_tmain):
17:33 Changeset [28788] by mrowe@apple.com

2007-12-16 Brent Fulgham <bfulgham@gmail.com>

Reviewed by Adam Roben.

http://bugs.webkit.org/show_bug.cgi?id=16315
FindSafari needs a path-only option.

  • FindSafari/FindSafari.cpp: (_tmain):
17:31 Changeset [28787] by darin@apple.com
  • fast/js/regexp-overflow-expected.txt: Updated. I accidentally checked in an out-of-date file last time.
17:28 Changeset [28786] by darin@apple.com

Reviewed by Darin Adler.

Fix http://bugs.webkit.org/show_bug.cgi?id=16433.
Bug 16433: LOW_BANDWIDTH_DISPLAY build is broken

  • dom/Document.cpp: (WebCore::Document::Document):
  • loader/FrameLoader.cpp: (WebCore::FrameLoader::addLowBandwidthDisplayRequest): (WebCore::FrameLoader::switchOutLowBandwidthDisplayIfReady):
17:26 Changeset [28785] by darin@apple.com

JavaScriptCore:

Reviewed by Maciej.

The problem was that \B was not handled properly in character classes.

Test: fast/js/regexp-overflow.html

  • pcre/pcre_compile.cpp: (check_escape): Added handling of ESC_b and ESC_B in character classes here. Allows us to get rid of the handling of \b in character classes from all the call sites that handle it separately and to handle \B properly as well. (compileBranch): Remove the ESC_b handling, since it's not needed any more. (calculateCompiledPatternLengthAndFlags): Ditto.

LayoutTests:

Reviewed by Maciej.

  • fast/js/regexp-overflow-expected.txt: Updated.
  • fast/js/resources/regexp-overflow.js: Added test cases.
17:26 Changeset [28784] by mrowe@apple.com

2007-12-16 Grace Kloba <klobag@gmail.com>

Reviewed by Darin Adler.

Fix http://bugs.webkit.org/show_bug.cgi?id=16433.
Bug 16433: LOW_BANDWIDTH_DISPLAY build is broken

  • dom/Document.cpp: (WebCore::Document::Document):
  • loader/FrameLoader.cpp: (WebCore::FrameLoader::addLowBandwidthDisplayRequest): (WebCore::FrameLoader::switchOutLowBandwidthDisplayIfReady):
17:20 Changeset [28783] by mrowe@apple.com

2007-12-16 Brent Fulgham <bfulgham@gmail.com>

Reviewed by Maciej Stachowiak.

http://bugs.webkit.org/show_bug.cgi?id=16446.

  • building/debug.html: Update to expand the win32 debugging instructions.
17:14 Changeset [28782] by mrowe@apple.com

Fix http://bugs.webkit.org/show_bug.cgi?id=16448 ([GTK] Celtic Kane JavaScript performance on Array test is slow relative to Mac).

Reviewed by Maciej Stachowiak.

  • kjs/array_instance.cpp:

(KJS::compareByStringPairForQSort):
(KJS::ArrayInstance::sort): Convert JSValue's to strings once up front and then sort the
results. This avoids calling toString twice per comparison, but requires a temporary buffer
so we only use this approach in cases where the array being sorted is not too large.

16:24 Changeset [28781] by darin@apple.com

WebCore:

Reviewed by Darin.

More of http://bugs.webkit.org/show_bug.cgi?id=16385
Cleanup kjs_window

  • Move PausedTimeouts into its own file and put it in the WebCore namespace.
  • WebCore.pro:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • WebCoreSources.bkl:
  • bindings/js/PausedTimeouts.cpp: Copied from bindings/js/kjs_window.cpp.
  • bindings/js/PausedTimeouts.h: Copied from bindings/js/kjs_window.h.
  • bindings/js/kjs_window.cpp: (KJS::Window::pauseTimeouts):
  • bindings/js/kjs_window.h:
  • history/CachedPage.cpp:
  • history/CachedPage.h:
  • page/Chrome.cpp:

LayoutTests:

Reviewed by Maciej.

  • tests for the argument handling of the executeSql function
  • storage/execute-sql-args-expected.txt: Added.
  • storage/execute-sql-args.html: Added.
16:17 Changeset [28780] by darin@apple.com
  • try to get the system color test passing on the buildbot

I fear this test may be vulnerable to slight platform differences.

  • platform/mac-tiger/fast: Added.
  • platform/mac-tiger/fast/css: Added.
  • platform/mac-tiger/fast/css/css2-system-color-expected.checksum: Copied from platform/mac/fast/css/css2-system-color-expected.checksum.
  • platform/mac-tiger/fast/css/css2-system-color-expected.png: Copied from platform/mac/fast/css/css2-system-color-expected.png.
  • platform/mac-tiger/fast/css/css2-system-color-expected.txt: Copied from platform/mac/fast/css/css2-system-color-expected.txt. Then updated to match what the buildbot says.
  • platform/mac/fast/css/css2-system-color-expected.txt: Updated to match results I'm getting locally on my Leopard machine.
15:59 Changeset [28779] by weinig@apple.com

Reviewed by Darin.

More of http://bugs.webkit.org/show_bug.cgi?id=16385
Cleanup kjs_window

  • Move PausedTimeouts into its own file and put it in the WebCore namespace.
  • WebCore.pro:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • WebCoreSources.bkl:
  • bindings/js/PausedTimeouts.cpp: Copied from bindings/js/kjs_window.cpp.
  • bindings/js/PausedTimeouts.h: Copied from bindings/js/kjs_window.h.
  • bindings/js/kjs_window.cpp: (KJS::Window::pauseTimeouts):
  • bindings/js/kjs_window.h:
  • history/CachedPage.cpp:
  • history/CachedPage.h:
  • page/Chrome.cpp:
15:08 Changeset [28778] by bdakin@apple.com

WebCore:

Reviewed by Geoff.

Make relative-size SVGs work in border-image.

  • rendering/RenderBox.cpp: (WebCore::RenderBox::calculateBackgroundSize):
  • rendering/RenderObject.cpp: (WebCore::RenderObject::paintBorderImage):

LayoutTests:

Reviewed by Geoff.

Tests for SVG as border-image.

  • fast/borders/resources/green-fixed-size-rect.svg: Added.
  • fast/borders/resources/green-relative-size-rect.svg: Added.
  • fast/borders/svg-as-border-image-2.html: Added.
  • fast/borders/svg-as-border-image.html: Added.
  • platform/mac/fast/borders/svg-as-border-image-2-expected.checksum: Added.
  • platform/mac/fast/borders/svg-as-border-image-2-expected.png: Added.
  • platform/mac/fast/borders/svg-as-border-image-2-expected.txt: Added.
  • platform/mac/fast/borders/svg-as-border-image-expected.checksum: Added.
  • platform/mac/fast/borders/svg-as-border-image-expected.png: Added.
  • platform/mac/fast/borders/svg-as-border-image-expected.txt: Added.
14:53 Changeset [28777] by ggaren@apple.com

Reviewed by Darin Adler and Maciej Stachowiak.


More refactoring to support global variable optimization.


Changed SymbolTable to use RefPtr<UString::Rep> as its key instead of
UString::Rep*. With globals, the symbol table can outlast the
declaration node for any given symbol, so the symbol table needs to ref
its symbol names.


In support, specialized HashMaps with RefPtr keys to allow lookup
via raw pointer, avoiding refcount churn.


SunSpider reports a .6% speedup (prolly just noise).

  • kjs/JSVariableObject.cpp: (KJS::JSVariableObject::getPropertyNames): Symbol table keys are RefPtrs now.
  • kjs/SymbolTable.h: Modified key traits to match RefPtr. Added a static Rep* for null, which helps compute the deletedValue() trait.
  • wtf/HashMap.h: #include the RefPtr specialization so everyone can use it.
  • wtf/RefPtrHashMap.h: Copied from wtf/HashMap.h. Added overloaded versions of find(), contains(), get(), set(), add(), remove(), and take() that take raw pointers as keys.
12:43 QtWebKitTodo edited by hausmann@webkit.org
(diff)
12:14 Changeset [28776] by darin@apple.com
  • fix Tiger build (my fault it was broken)
  • rendering/RenderThemeMac.mm: Define NSUInteger if on Tiger.
11:26 Changeset [28775] by darin@apple.com

WebCore:

Reviewed by Darin.


http://bugs.webkit.org/show_bug.cgi?id=6129
Incomplete implementation of CSS 2.1 system colors

Test: fast/css/css2-system-color.html


Based on original patch by Rob Buis.


System colors are retrieved from NSColor as appropriate. If the color is a pattern color
(and therefore NSColor won't let us retrieve a color from it) we draw a 1x1 image of the
color and sample that to get a solid color.

  • css/CSSStyleSelector.cpp: (WebCore::): (WebCore::colorForCSSValue):
  • rendering/RenderTheme.cpp: (WebCore::RenderTheme::systemColor):
  • rendering/RenderTheme.h:
  • rendering/RenderThemeMac.h:
  • rendering/RenderThemeMac.mm: (WebCore::getSystemColor): (WebCore::RenderThemeMac::platformColorsDidChange): (WebCore::RenderThemeMac::systemColor):

LayoutTests:

Reviewed by Darin.


http://bugs.webkit.org/show_bug.cgi?id=6129
Incomplete implementation of CSS 2.1 system colors


Add layout test for this bug and update tests for new system-derived colors

  • fast/css/css2-system-color.html: Added.
  • platform/mac/fast/css/css2-system-color-expected.checksum: Added.
  • platform/mac/fast/css/css2-system-color-expected.png: Added.
  • platform/mac/fast/css/css2-system-color-expected.txt: Added.
  • platform/mac/fast/css/css2-system-fonts-expected.checksum:
  • platform/mac/tables/mozilla/bugs/bug103533-expected.txt:
10:40 Changeset [28774] by mitz@apple.com

WebCore:

Reviewed by Darin Adler.

Test: fast/overflow/scrollbar-position-update.html

  • platform/mac/PlatformScrollBarMac.mm: (WebCore::PlatformScrollbar::updateThumbProportion): Update the NSScroller's value for the new proportions.
  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::updateScrollInfoAfterLayout): Removed unnecessary repaint(). Scrollbars repaint themselves as needed.

LayoutTests:

Reviewed by Darin Adler.

  • fast/overflow/scrollbar-position-update.html: Added.
  • platform/mac-leopard/fast/overflow: Added.
  • platform/mac-leopard/fast/overflow/scrollbar-position-update-expected.checksum: Added.
  • platform/mac-leopard/fast/overflow/scrollbar-position-update-expected.png: Added.
  • platform/mac/fast/overflow/scrollbar-position-update-expected.txt: Added.
10:13 Changeset [28773] by darin@apple.com
  • try to fix the build
  • WebView.cpp: (wxWebView::OnKeyEvents): Add a WebCore prefix.
09:37 Changeset [28772] by ap@webkit.org

Reviewed by Darin.

http://bugs.webkit.org/show_bug.cgi?id=14140
<rdar://problem/5270958> REGRESSION: Complex system KeyBindings don't work properly

WebCore:

  • dom/KeyboardEvent.h: (WebCore::KeypressCommand::KeypressCommand): (WebCore::KeyboardEvent::keypressCommands): Change stored command class to preserve complete information about commands.
  • editing/EditorCommand.cpp: (WebCore::CommandEntry::): Mark InsertText as a text insertion command, which it is. Previously, we couldn't do it because WebKit didn't really treat insertText: as a command.
  • page/EventHandler.cpp: (WebCore::EventHandler::keyEvent): Copy commands saved while interpreting a keydown event into keypress, to avoid losing state when running interpretKeyEvents: again.

WebKit:

  • WebView/WebHTMLView.mm: (-[WebHTMLView _interceptEditingKeyEvent:shouldSaveCommand:]): Made command replaying work when handling keypress, too. (-[WebHTMLView doCommandBySelector:]): Adapted for the new way to store commands in events. (-[WebHTMLView insertText:]): Append a command, not replace the whole existing vector. Also, restore the state for additional commands to be saved correctly.
09:31 Changeset [28771] by ap@webkit.org

Reviewed by Darin.

http://bugs.webkit.org/show_bug.cgi?id=16162
Problems with float parsing on Linux (locale-dependent parsing was used).

  • kjs/dtoa.cpp: Removed USE_LOCALE to reduce future confusion.
  • kjs/lexer.cpp: (KJS::Lexer::lex): Parse with kjs_strtod, not the system one.
09:23 QtWebKitTodo edited by zander@kde.org
(diff)
08:16 Changeset [28770] by ap@webkit.org

Reviewed by Darin.

http://bugs.webkit.org/show_bug.cgi?id=16462
REGRESSION: access keys broken on Windows

05:20 Changeset [28769] by alp@webkit.org

2007-12-16 Xan Lopez <xan@gnome.org>

Reviewed by Alexey Proskuryakov.

http://bugs.webkit.org/show_bug.cgi?id=16454
[GTK] Text input doesn't work consistently on PPC

  • platform/gtk/KeyEventGtk.cpp: (WebCore::singleCharacterString):

UChar is 2 bytes (UTF-16), so transform accordingly from
gunichar (UCS-4). Fixes keyboard input on big endian systems.

Note: See TracTimeline for information about the timeline view.