slewis@apple.com [Sat, 8 Mar 2008 06:19:04 +0000 (06:19 +0000)]
2008-03-07 Dan Bernstein <mitz@apple.com>
Reviewed by Stephanie.
- try to fix leaks seen on Tiger after r30840
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::~CSSStyleSelector): Use the default operator
delete, rather than arena delete, to deallocate the root default style.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30893
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
alp@webkit.org [Sat, 8 Mar 2008 06:07:54 +0000 (06:07 +0000)]
2008-03-07 Pierre-Luc Beaudoin <pierre-luc.beaudoin@collabora.co.uk>
Reviewed by Alp Toker.
http://bugs.webkit.org/show_bug.cgi?id=17681
GtkLauncher fails to render an element with position: fixed
Implement the required parts of PlatformScreenGtk.
* ChangeLog:
* platform/gtk/PlatformScreenGtk.cpp:
(WebCore::screenDepth):
(WebCore::screenIsMonochrome):
(WebCore::screenRect):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30892
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
oliver@apple.com [Sat, 8 Mar 2008 05:58:20 +0000 (05:58 +0000)]
Bug 16610: <canvas> restore() removes path segments created before it
Reviewed by Darin Adler (code) and Mark Rowe (tests)
The problem here is that WebKit stored the Path as part of the state, so
restore would incorrectly lose changes made to the canvas path. To match
Firefox and HTML5 we make two real changes:
* Move the context path from the state object directly onto the context.
This is responsible for all the changes to the path manipulation functions
* Add transform tracking to each state -- this is needed to correctly transform
the current path when restore()-ing to a prior state.
Test: fast/canvas/canvas-save-restore-with-path.html
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30891
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
oliver@apple.com [Sat, 8 Mar 2008 03:43:35 +0000 (03:43 +0000)]
Fix for crash caused by FrameLoader incorrectly assuming it has
a RenderWidget
Reviewed by Ada
In some circumstances an application embedding a WebView may
choose to prevent a webview from loading a resource. If that
resource was requested by an <object> element then we may
fallback to different content which may not produce a RenderWidget.
Unfortunately FrameLoader::loadSubframe was assuming that if a
renderer was produced it would always be a RenderWidget, and arbitrarily
performed what could be an incorrect cast. This could then lead to
a crash.
We currently don't have anyway of making a test for this.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30890
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
slewis@apple.com [Sat, 8 Mar 2008 03:25:54 +0000 (03:25 +0000)]
2008-03-07 Stephanie Lewis <slewis@apple.com>
Reviewed by Oliver.
Add Windows part of <rdar://problem/
5693690>
* DumpRenderTree/win/DumpRenderTree.cpp:
(dump):
(main):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30889
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
weinig@apple.com [Sat, 8 Mar 2008 03:08:48 +0000 (03:08 +0000)]
WebCore:
Reviewed by Oliver Hunt.
Fix for http://bugs.webkit.org/show_bug.cgi?id=16673
<canvas> lacks toDataURL()
Tests: fast/canvas/toDataURL-noData.html
fast/canvas/toDataURL-supportedTypes.html
* html/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::printSecurityExceptionMessage): Make message non-global.
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::printSecurityExceptionMessage): Log error message indicating that toDataURL has
been called on a tainted canvas.
(WebCore::HTMLCanvasElement::toDataURL): This does the tainted canvas check, ensures that the canvas has pixel
data, checks to see if the MIME type is supported. Unsupported MIME types and the null string (which is made
by passing no argument/null/undefined in JavaScript) are treated as being PNG, as per the spec. The actual
toDataURL logic is actually done in the ImageBuffer class.
* html/HTMLCanvasElement.h: Add function declarations.
* html/HTMLCanvasElement.idl: Add function declaration.
* platform/MIMETypeRegistry.cpp:
(WebCore::initializeSupportedImageMIMETypes):
(WebCore::initializeSupportedImageMIMETypesForEncoding):
(WebCore::initializeSupportedJavaScriptMIMETypes):
(WebCore::initializeSupportedNonImageMimeTypes):
(WebCore::initializeSupportedMediaMIMETypes):
(WebCore::initializeMIMETypeRegistry):
(WebCore::MIMETypeRegistry::getMIMETypeForPath):
(WebCore::MIMETypeRegistry::isSupportedImageMIMEType):
(WebCore::MIMETypeRegistry::isSupportedImageResourceMIMEType):
(WebCore::MIMETypeRegistry::isSupportedImageMIMETypeForEncoding):
(WebCore::MIMETypeRegistry::isSupportedJavaScriptMIMEType):
(WebCore::MIMETypeRegistry::isSupportedNonImageMIMEType):
(WebCore::MIMETypeRegistry::isSupportedMediaMIMEType):
(WebCore::MIMETypeRegistry::isJavaAppletMIMEType):
(WebCore::MIMETypeRegistry::getSupportedImageMIMETypes):
(WebCore::MIMETypeRegistry::getSupportedImageResourceMIMETypes):
(WebCore::MIMETypeRegistry::getSupportedImageMIMETypesForEncoding):
(WebCore::MIMETypeRegistry::getSupportedNonImageMIMETypes):
(WebCore::MIMETypeRegistry::getSupportedMediaMIMETypes):
* platform/MIMETypeRegistry.h:
Clean up and add new supportedImageMIMETypesForEncoding set which contains the set of
MIME types the platform knows how to encode. Currently only implemented for CG and Qt.
* platform/graphics/ImageBuffer.h: Add toDataURL method.
* platform/graphics/cairo/ImageBufferCairo.cpp:
(WebCore::ImageBuffer::toDataURL): Add stub.
* platform/graphics/cg/ImageBufferCG.cpp:
(WebCore::ImageBuffer::create):
(WebCore::ImageBuffer::getImageData):
(WebCore::ImageBuffer::putImageData):
(WebCore::ImageBuffer::toDataURL):
Converts the current context to a data: url of the specified MIME type. This method
unfortunately has to flip the context, resulting in less than optimal code.
* platform/graphics/qt/ImageBufferQt.cpp:
(WebCore::ImageBuffer::toDataURL): Add stub.
* platform/graphics/wx/ImageBufferWx.cpp:
(WebCore::ImageBuffer::toDataURL): Add stub.
LayoutTests:
Reviewed by Oliver Hunt.
Tests for http://bugs.webkit.org/show_bug.cgi?id=16673
<canvas> lacks toDataURL()
* fast/canvas/toDataURL-noData-expected.txt: Added.
* fast/canvas/toDataURL-noData.html: Added.
* fast/canvas/toDataURL-supportedTypes-expected.txt: Added.
* fast/canvas/toDataURL-supportedTypes.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30888
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
alp@webkit.org [Sat, 8 Mar 2008 01:30:46 +0000 (01:30 +0000)]
2008-03-07 Alp Toker <alp@atoker.com>
Back out the r30818, r30819 build fix attempts now the GTK+ build
server has been upgraded.
* Scripts/webkitdirs.pm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30887
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
sfalken@apple.com [Sat, 8 Mar 2008 01:28:36 +0000 (01:28 +0000)]
Build fix.
* WebCore.vcproj/WebCore.vcproj:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30886
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
adele@apple.com [Sat, 8 Mar 2008 00:19:59 +0000 (00:19 +0000)]
Removing duplicate entry for hasFocus.html
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30885
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
slewis@apple.com [Sat, 8 Mar 2008 00:09:25 +0000 (00:09 +0000)]
2008-03-07 Stephanie Lewis <slewis@apple.com>
update Windows Skipped List
* platform/win/Skipped:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30884
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mrowe@apple.com [Fri, 7 Mar 2008 23:29:31 +0000 (23:29 +0000)]
2008-03-07 Brent Fulgham <bfulgham@gmail.com>
Reviewed by Mark Rowe.
Correct build intermediary output
(http://bugs.webkit.org/show_bug.cgi?id=17713)
* WebKit/win/WebKit.vcproj/WebKit.vcproj: Correct output and intermediary paths
2008-03-07 Brent Fulgham <bfulgham@gmail.com>
Reviewed by Mark Rowe.
Correct build intermediary output
(http://bugs.webkit.org/show_bug.cgi?id=17713)
* WebCore/WebCore.vcproj: Correct intermediary paths
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30883
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
adele@apple.com [Fri, 7 Mar 2008 22:56:33 +0000 (22:56 +0000)]
Adding fast/dom/HTMLDocument/hasFocus.html to the skipped list, while I investigate the failure.
* platform/win/Skipped:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30882
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
slewis@apple.com [Fri, 7 Mar 2008 22:32:24 +0000 (22:32 +0000)]
2008-03-07 Stephanie <slewis@apple.com>
Reviewed by Geoff.
<rdar://problem/
5693690> run-webkit-tests swallows STDERR output, including WebCore LEAK messages
* DumpRenderTree/mac/DumpRenderTree.mm:
(dump): push EOF to stderr after every test
* Scripts/run-webkit-tests: collect stderr output and print it
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30881
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mrowe@apple.com [Fri, 7 Mar 2008 21:15:08 +0000 (21:15 +0000)]
2008-03-07 Brent Fulgham <bfulgham@gmail.com>
Reviewed by Adam Roben.
Do not link (or attempt to initialize) the SafariTheme.dll
when not building with USE(SAFARI_THEME) enabled.
(http://bugs.webkit.org/show_bug.cgi?id=17707)
* WebKit/win/WebKitClassFactory.cpp: Conditionalize use of SafariTheme.dll
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30877
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mrowe@apple.com [Fri, 7 Mar 2008 21:13:24 +0000 (21:13 +0000)]
2008-03-07 Brent Fulgham <bfulgham@gmail.com>
Reviewed by Steve Falkenburg.
Add Cairo build requirements to WebCore.vcproj under a new
set of targets. Exclude Cairo elements from normal CG build.
Exclude CG elements from Cairo builds.
(http://bugs.webkit.org/show_bug.cgi?id=17300)
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcproj/webcore.vsprops: Added.
2008-03-07 Brent Fulgham <bfulgham@gmail.com>
Reviewed by Steve Falkenburg.
Update solution to understand Cairo build target. Add
library dependencies for Cairo build target.
(http://bugs.webkit.org/show_bug.cgi?id=17300)
* WebKit.vcproj/WebKit.sln:
* WebKit.vcproj/WebKit.vcproj:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30876
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Fri, 7 Mar 2008 21:00:48 +0000 (21:00 +0000)]
WebCore:
Reviewed by Adam.
- eliminated WebCoreFrameBridge runOpenPanel
* page/ChromeClient.h: Added runOpenPanel function.
* page/mac/ChromeMac.mm:
(WebCore::ChromeClient::runOpenPanel): Added.
* platform/FileChooser.cpp:
(WebCore::FileChooser::FileChooser): Moved this here. It's no longer platform-specific.
Also start the refcount at 1.
(WebCore::FileChooser::create): Added adoptRef since the refcount no starts at one.
(WebCore::FileChooser::~FileChooser): Moved here. No longer platform-specific.
* platform/FileChooser.h: Removed m_controller, which was Macintosh-specific.
* platform/gtk/FileChooserGtk.cpp: Removed FileChooser constructor and destructor,
since they are no longer platform-specific.
* platform/qt/FileChooserQt.cpp: Ditto.
* platform/win/FileChooserWin.cpp: Ditto.
* platform/wx/TemporaryLinkStubs.cpp: Ditto.
* platform/mac/FileChooserMac.mm:
(WebCore::FileChooser::openFileChooser): Call the chrome client instead of the
bridge to run the open panel. Allows us to get rid of the WebCoreOpenPanelController
class and m_controller data member and move the cosntrutor/destructor to platform-
independent code.
WebKit/mac:
Reviewed by Adam.
- eliminated WebCoreFrameBridge runOpenPanel
* WebCoreSupport/WebChromeClient.h: Added runOpenPanel.
* WebCoreSupport/WebChromeClient.mm:
(WebChromeClient::runOpenPanel): Added.
(-[WebOpenPanelResultListener initWithChooser:]): Added. Used to wrap the
FileChooser so it can get a result from the UI delegate.
(-[WebOpenPanelResultListener dealloc]): Added.
(-[WebOpenPanelResultListener finalize]): Added.
(-[WebOpenPanelResultListener cancel]): Added.
(-[WebOpenPanelResultListener chooseFilename:]): Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30875
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
aroben@apple.com [Fri, 7 Mar 2008 20:51:35 +0000 (20:51 +0000)]
Add WebCore::JavaScriptDebugServer and use it from WebKit/win
WebCore:
Add JavaScriptDebugServer
This class is a singleton which allows one or more
JavaScriptDebugListeners to receive callbacks during JavaScript
execution.
Right now all listeners receive callbacks for all Pages in the
process. Eventually we will want to support listeners registering for
callbacks for specific Pages (e.g., the Inspector will want to listen
for execution in just the Page it's inspecting).
Pages notify the JavaScriptDebugServer when they are created so that
it can install itself as the Page's debugger.
Reviewed by Darin.
* GNUMakefile.am: Added new files to project.
* WebCore.pro: Ditto.
* WebCore.vcproj/WebCore.vcproj: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* WebCoreSources.bkl: Ditto.
* page/JavaScriptDebugListener.h: Added.
* page/JavaScriptDebugServer.cpp: Added.
(WebCore::toFrame):
(WebCore::JavaScriptDebugServer::shared):
(WebCore::JavaScriptDebugServer::JavaScriptDebugServer):
(WebCore::JavaScriptDebugServer::~JavaScriptDebugServer):
(WebCore::JavaScriptDebugServer::addListener): Registers as the
debugger for all Pages if we're adding our first listener.
(WebCore::JavaScriptDebugServer::removeListener): Deregisters as the
debugger for all Pages if we're removing our last listner.
(WebCore::JavaScriptDebugServer::pageCreated): Registers as the
debugger for the newly created Page if we have any listeners.
(WebCore::dispatchDidParseSource): Helper function.
(WebCore::dispatchFailedToParseSource): Ditto.
(WebCore::JavaScriptDebugServer::sourceParsed): Call
dispatchDidParseSource or dispatchFailedToParseSource depending on
whether there was an error or not.
(WebCore::JavaScriptDebugServer::dispatchFunctionToListeners): Calls
the passed-in JavaScriptExecutionCallback on each listener, guarding
against re-entry.
(WebCore::JavaScriptDebugServer::callEvent): Dispatch didEnterCallFrame.
(WebCore::JavaScriptDebugServer::atStatement): Dispatch willExecuteStatement.
(WebCore::JavaScriptDebugServer::returnEvent): Dispatch willLeaveCallFrame.
(WebCore::JavaScriptDebugServer::exception): Dispatch exceptionWasRaised.
* page/JavaScriptDebugServer.h: Added.
* page/Page.cpp:
(WebCore::Page::Page): Tell the shared JavaScriptDebugServer we were
created so it can register as our debugger if needed.
WebKit/win:
Change WebScriptDebugServer to use WebCore::JavaScriptDebugServer
WebScriptDebugServer is now a JavaScriptDebugListener.
Reviewed by Darin.
* WebScriptDebugServer.cpp:
(WebScriptDebugServer::WebScriptDebugServer): Removed initialization
of m_callingListeners member.
(WebScriptDebugServer::addListener): Register as a listener with
JavaScriptDebugServer if we've just added our first listener.
(WebScriptDebugServer::removeListener): Deregister as a listener with
JavaScriptDebugServer if we've just removed our last listener.
(WebScriptDebugServer::didParseSource): Added. Code came from the old
sourceParsed method. Removed m_callingListeners code because
JavaScriptDebugServer guards against re-entry for us.
(WebScriptDebugServer::failedToParseSource): Ditto.
(WebScriptDebugServer::didEnterCallFrame): Ditto for callEvent.
(WebScriptDebugServer::willExecuteStatement): Ditto for atStatement.
(WebScriptDebugServer::willLeaveCallFrame): Ditto for
willLeaveCallFrame.
(WebScriptDebugServer::exceptionWasRaised): Ditto for exception.
* WebScriptDebugServer.h: Changed to inherit from
WebCore::JavaScriptDebugListener.
* WebView.cpp:
(WebView::initWithFrame): Removed call to
WebScriptDebugServer::pageCreated. This is now handled by WebCore.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30874
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Fri, 7 Mar 2008 20:39:21 +0000 (20:39 +0000)]
Reviewed by Brady.
- fix a theoretical problem with the visited-link hash table by avoiding collision
with the special "deleted" value
- improve efficiency of with the visited-link hash table by not hashing twice
* page/PageGroup.cpp:
(WebCore::avoidDeletedValue): Added. Makes sure we never try to use the "all ones"
value, since the hash table uses that for deleted hash table entries.
(WebCore::PageGroup::isLinkVisited): Call avoidDeletedValue before using the hash
value with the HashSet.
(WebCore::PageGroup::addVisitedLink): Ditto.
* page/PageGroup.h: Added a new hash function, AlreadyHashed, for unsigned integer
values. This assumes that the value is already a hash value, and doesn't try to
hash it again. Used this for m_visitedLinkHashes.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30873
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
sfalken@apple.com [Fri, 7 Mar 2008 20:15:43 +0000 (20:15 +0000)]
Get pdevenv working with Visual Studio Express.
Reviewed by Adam.
* Scripts/pdevenv:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30872
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ggaren@apple.com [Fri, 7 Mar 2008 19:46:33 +0000 (19:46 +0000)]
JavaScriptCore:
Reviewed by Darin Adler.
Fixed <rdar://problem/
5689093> Stricter (ES4) eval semantics
The basic rule is:
- "eval(s)" is treated as an operator that gives the ES3 eval behavior.
... but only if there is no overriding declaration of "eval" in scope.
- All other invocations treat eval as a function that evaluates a
script in the context of its "this" object.
... but if its "this" object is not the global object it was
originally associated with, eval throws an exception.
Because only expressions of the form "eval(s)" have access to local
scope, the compiler can now statically determine whether a function
needs local scope to be dynamic.
* kjs/nodes.h: Added FunctionCallEvalNode. It works just like
FuncationCallResolveNode, except it statically indicates that the node
may execute eval in the ES3 way.
* kjs/nodes.cpp:
* kjs/nodes2string.cpp:
* tests/mozilla/expected.html: This patch happens to fix a Mozilla JS
test, but it's a bit of a pyrrhic victory. The test intends to test
Mozilla's generic API for calling eval on any object, but, in reality,
we only support calling eval on the global object.
LayoutTests:
Reviewed by Darin Adler.
Tests for <rdar://problem/
5689093> Stricter (ES4) eval semantics
* fast/js/eval-cross-window-expected.txt: Added.
* fast/js/eval-cross-window.html: Added.
* fast/js/eval-keyword-vs-function-expected.txt: Added.
* fast/js/eval-keyword-vs-function.html: Added.
* fast/js/eval-overriding-expected.txt: Added.
* fast/js/eval-overriding.html: Added.
Tests to make sure not to regress security:
* http/tests/security/resources/xss-eval2.html: Added.
* http/tests/security/resources/xss-eval3.html: Added.
* http/tests/security/xss-eval-expected.txt: Added.
* http/tests/security/xss-eval.html: Added.
I removed these tests because we no longer match the behavior they
expected, and the new tests are more comprehensive:
* fast/js/window-eval-context-expected.txt: Removed.
* fast/js/window-eval-context.html: Removed.
* fast/js/window-eval-tearoff-expected.txt: Removed.
* fast/js/window-eval-tearoff.html: Removed.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30871
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
hausmann@webkit.org [Fri, 7 Mar 2008 13:09:09 +0000 (13:09 +0000)]
Fix the Qt build.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30870
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
oliver@apple.com [Fri, 7 Mar 2008 07:45:38 +0000 (07:45 +0000)]
Implement the HTML5 canvas tainting rules to prevent potential data leakage
Reviewed by Mitz
Added originClean to HTMLCanvasElement and CanvasPattern
to track whether a canvas (or pattern) is tainted by remote
data.
Use originClean flag to determine whether getImageData should
return, well, image data.
Test: http/tests/security/canvas-remote-read-remote-image.html
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30869
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
andersca@apple.com [Fri, 7 Mar 2008 01:55:18 +0000 (01:55 +0000)]
Reviewed by Jon.
Templatize the JNI call code to reduce the amount of code that has
to be duplicated.
* bridge/jni/jni_class.cpp:
(JavaClass::JavaClass):
* bridge/jni/jni_instance.cpp:
(JavaInstance::stringValue):
(JavaInstance::numberValue):
(JavaInstance::booleanValue):
(JavaInstance::invokeMethod):
* bridge/jni/jni_jsobject.cpp:
(JavaJSObject::convertJObjectToValue):
* bridge/jni/jni_runtime.cpp:
(JavaField::JavaField):
(JavaMethod::JavaMethod):
* bridge/jni/jni_utility.cpp:
* bridge/jni/jni_utility.h:
(KJS::Bindings::):
(KJS::Bindings::callJNIMethodIDA):
(KJS::Bindings::callJNIMethodV):
(KJS::Bindings::callJNIMethod):
(KJS::Bindings::callJNIStaticMethod):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30868
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Fri, 7 Mar 2008 01:51:20 +0000 (01:51 +0000)]
WebCore:
Reviewed by Mitz.
- fix regression test failures from the visited-link change
* WebCore.base.exp: Export PageGroup::setShouldTrackVisitedLinks.
* page/PageGroup.cpp:
(WebCore::PageGroup::addVisitedLink): Do nothing and return early
if shouldTrackVisitedLinks is false.
(WebCore::PageGroup::removeVisitedLinks): Reset m_visitedLinksPopulated
so the next time a link is queried this will be populated from history.
(WebCore::PageGroup::setShouldTrackVisitedLinks): Added.
* page/PageGroup.h: Added setShouldTrackVisitedLinks. This is global
for now, but it would be better if it was per-page-group instead.
WebKit/mac:
Reviewed by Mitz.
- fix regression test failures from the visited-link change
* History/WebHistory.mm:
(+[WebHistory setOptionalSharedHistory:]): Call PageGroup::setShouldTrackVisitedLinks
to turn off visited links if there is no history object. Also call
removeAllVisitedLinks so we can start over from scratch with the new history.
WebKit/win:
Reviewed by Mitz.
- fix regression test failures and crashes from the visited-link change
* WebCoreSupport/WebChromeClient.cpp:
(WebChromeClient::populateVisitedLinks): Check for null before calling
addVisitedLinksToPageGroup.
* WebCoreSupport/WebFrameLoaderClient.cpp:
(WebFrameLoaderClient::updateGlobalHistory): Ditto.
* WebHistory.cpp:
(WebHistory::setOptionalSharedHistory): Call PageGroup::setShouldTrackVisitedLinks
to turn off visited links if there is no history object. Also call
removeAllVisitedLinks so we can start over from scratch with the new history.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30867
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
adele@apple.com [Fri, 7 Mar 2008 01:30:28 +0000 (01:30 +0000)]
WebCore:
Reviewed by Darin.
Fixes for for <rdar://problem/
5785892> Implement activeElement attribute for HTMLDocument (HTML5)
and <rdar://problem/
5785895> Implement hasFocus() for HTMLDocument (HTML5)
Tests: fast/dom/HTMLDocument/activeElement.html
fast/dom/HTMLDocument/hasFocus.html
* html/HTMLDocument.cpp:
(WebCore::HTMLDocument::activeElement): Added. Returns the focused element, or the body element if nothing's focused.
(WebCore::HTMLDocument::hasFocus): Added. Returns whether or not the document has focus (inclusive of sub-frames).
* html/HTMLDocument.h: Added methods for activeElement and hasFocus.
* html/HTMLDocument.idl: Added definitions for activeElement and hasFocus.
WebKitTools:
Reviewed by Darin.
Updated for testing <rdar://problem/
5785895> Implement hasFocus() for HTMLDocument (HTML5)
* DumpRenderTree/mac/UIDelegate.mm:
(-[UIDelegate webViewFocus:]): Remove duplicate code that was also in LayoutTestController::setWindowIsKey
(-[UIDelegate webViewUnfocus:]): Added. In Safari, the default is to focus another window if there is one.
To easily test cases where the window is unfocused, I made this just call setWindowIsKey(false).
LayoutTests:
Reviewed by Darin.
Tests for <rdar://problem/
5785892> Implement activeElement attribute for HTMLDocument (HTML5)
and <rdar://problem/
5785895> Implement hasFocus() for HTMLDocument (HTML5)
* fast/dom/HTMLDocument/activeElement-expected.txt: Added.
* fast/dom/HTMLDocument/activeElement.html: Added.
* fast/dom/HTMLDocument/hasFocus-expected.txt: Added.
* fast/dom/HTMLDocument/hasFocus.html: Added.
* fast/dom/HTMLDocument/resources/hasFocus-iframe.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30866
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mitz@apple.com [Fri, 7 Mar 2008 01:09:51 +0000 (01:09 +0000)]
WebCore:
Reviewed by Darin Adler.
- fix <rdar://problem/
5741981> 154008 WebKit: Some asian language font glyphs are not shown (in Mail and Entourage)
Test: fast/text/soft-hyphen-3.html
* rendering/bidi.cpp:
(WebCore::checkMidpoints):
(WebCore::RenderBlock::findNextLineBreak): Made 'pos' unsigned. Made the
midpoint after a hyphen always be a valid iterator, not allowing an
offset past the end of a text node. Changed the check for consecutive
soft hyphens to account for that.
LayoutTests:
Reviewed by Darin Adler.
- test and updated results for <rdar://problem/
5741981> 154008 WebKit: Some asian language font glyphs are not shown (in Mail and Entourage)
* fast/text/soft-hyphen-3.html: Added.
* platform/mac/fast/text/basic/014-expected.txt:
* platform/mac/fast/text/soft-hyphen-3-expected.checksum: Added.
* platform/mac/fast/text/soft-hyphen-3-expected.png: Added.
* platform/mac/fast/text/soft-hyphen-3-expected.txt: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30865
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
pewtermoose@webkit.org [Fri, 7 Mar 2008 00:28:55 +0000 (00:28 +0000)]
WebKit/win:
Reviewed by Adam Roben.
Bug 17691: REGRESSION: FindSafari doesn't work
http://bugs.webkit.org/show_bug.cgi?id=17691
Swap my change from r30394 to use the Release libraries instead of Debug
since some machines don't have the Debug version.
* WebKit.vcproj/WebKit.sln:
WebKitTools:
Reviewed by Adam Roben.
Bug 17691: REGRESSION: FindSafari doesn't work
http://bugs.webkit.org/show_bug.cgi?id=17691
Swap my change from r30394 to use the Release libraries instead of Debug
since some machines don't have the Debug version.
* FindSafari/FindSafari.vcproj:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30864
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ddkilzer@apple.com [Fri, 7 Mar 2008 00:14:54 +0000 (00:14 +0000)]
Fix typos.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30863
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
sfalken@apple.com [Fri, 7 Mar 2008 00:14:22 +0000 (00:14 +0000)]
Build fix.
* JavaScriptCore.vcproj/testkjs/testkjs.vcproj:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30862
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
sfalken@apple.com [Thu, 6 Mar 2008 23:39:43 +0000 (23:39 +0000)]
Build fix.
* JavaScriptCore.vcproj/WTF/WTF.vcproj:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30861
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mrowe@apple.com [Thu, 6 Mar 2008 23:33:07 +0000 (23:33 +0000)]
Versioning.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30860
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kmccullough@apple.com [Thu, 6 Mar 2008 23:28:05 +0000 (23:28 +0000)]
Reviewed by Sam and Tim.
<rdar://
5631450> Drosera: breakpoint indicators disappear after the
script is finished running.
- If there is a pre-existing breakpoint on a line when the file is
updated we need to redraw it.
* Drosera/debugger.js:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30858
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
alp@webkit.org [Thu, 6 Mar 2008 23:11:37 +0000 (23:11 +0000)]
2008-03-06 Alp Toker <alp@atoker.com>
Fix the build fix in r30845 to support out-of-tree builds.
* GNUmakefile.am:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30857
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mitz@apple.com [Thu, 6 Mar 2008 21:45:50 +0000 (21:45 +0000)]
Reviewed by Darin Adler.
- fix a regression from r30741: a crash under
WebFrameLoaderClient::createPlugin() when showing a Mail message with
an attachment
* WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::createPlugin):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30856
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
sfalken@apple.com [Thu, 6 Mar 2008 21:09:29 +0000 (21:09 +0000)]
Build fix.
* wtf/ThreadingWin.cpp:
(WTF::ThreadCondition::timedWait):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30855
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
beidson@apple.com [Thu, 6 Mar 2008 20:58:35 +0000 (20:58 +0000)]
Tiger build fix...?
* DumpRenderTree/mac/WatchdogMac.mm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30854
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Thu, 6 Mar 2008 20:08:54 +0000 (20:08 +0000)]
- another small step towards fixing the Qt build
* JavaScriptCore.pri: Remove more references to the now-obsolete bindings directory.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30853
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Thu, 6 Mar 2008 20:02:04 +0000 (20:02 +0000)]
JavaScriptCore:
- a small step towards fixing the Qt build
* JavaScriptCore.pri: Remove references to files no longer present in JavaScriptCore/bindings.
WebCore:
- try to fix Wx build
* WebCoreSources.bkl: Added PageGroup.cpp.
WebKit/mac:
- fix Tiger build
* History/WebHistory.mm: Added include of WebTypesInternal.h.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30852
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
beidson@apple.com [Thu, 6 Mar 2008 19:50:32 +0000 (19:50 +0000)]
Gtk Build fix
* wtf/ThreadingGtk.cpp:
(WTF::ThreadCondition::timedWait):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30851
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ap@webkit.org [Thu, 6 Mar 2008 19:34:31 +0000 (19:34 +0000)]
Wx build fix.
* wtf/unicode/icu/CollatorICU.cpp:
(WTF::Collator::userDefault): Put ICU workaround under both PLATFORM(DARWIN) and
PLATFORM(CF) checks, so that each port can decide if it wants to use CF on Mac for it.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30850
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
beidson@apple.com [Thu, 6 Mar 2008 18:55:02 +0000 (18:55 +0000)]
JavaScriptCore:
Reviewed by Darin
Add a timedWait() method to ThreadCondition
* JavaScriptCore.exp:
* wtf/Threading.h:
* wtf/ThreadingGtk.cpp:
(WTF::ThreadCondition::timedWait):
* wtf/ThreadingNone.cpp:
(WTF::ThreadCondition::timedWait):
* wtf/ThreadingPthreads.cpp:
(WTF::ThreadCondition::timedWait):
* wtf/ThreadingWin.cpp:
(WTF::ThreadCondition::timedWait): Needs implementation
WebKitTools:
Reviewed by Darin
Added a cross-platform Watchdog thread to DRT.
The current watchdog in both DRTWin and DRTMac is Timer based. Therefore, deadlocks and long running
main thread hangs still affect DRT.
By placing the watchdog on a thread and having DRT "check in" after each test, long-running hangs
and true deadlocks can be caught.
There is one hook for platform specific code. As I did my development and testing on Mac, and Mac has
`sample` available, the Mac implementation of this hook samples the process before it is killed.
I arbitrarily chose 30 seconds as the timeout for now - this can be tweaked easily if we find a need.
* DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:
* DumpRenderTree/mac/Configurations/Base.xcconfig: Added LINKER_DISPLAYS_MANGLED_NAMES
* DumpRenderTree/ForwardingHeaders/wtf/Locker.h: Added.
* DumpRenderTree/ForwardingHeaders/wtf/Threading.h: Added.
* DumpRenderTree/Watchdog.cpp: Added.
(Watchdog::Watchdog):
(Watchdog::~Watchdog):
(Watchdog::start):
(Watchdog::stop):
(Watchdog::checkIn):
(Watchdog::setWatchdogInterval):
(Watchdog::handleHang):
(Watchdog::watchdogThreadStart):
(Watchdog::watchdogThread):
* DumpRenderTree/Watchdog.h: Added.
* DumpRenderTree/mac/WatchdogMac.h: Added.
* DumpRenderTree/mac/WatchdogMac.mm: Added.
(WatchdogMac::handleHang): Sample the process and write it out to a file
* DumpRenderTree/mac/DumpRenderTree.mm:
(dumpRenderTree): Setup and start the watchdog before running any tests
(runTest): Checkin with the watchdog after each test
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30849
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ap@webkit.org [Thu, 6 Mar 2008 18:51:57 +0000 (18:51 +0000)]
More build fixes.
* jscore.bkl: Add the wtf/unicode directory.
* wtf/unicode/CollatorDefault.cpp:
(WTF::Collator::userDefault): Use a constructor that does exist.
* wtf/unicode/icu/CollatorICU.cpp: Mac build fix for case-sensitive file systems.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30848
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Thu, 6 Mar 2008 18:21:27 +0000 (18:21 +0000)]
- fix Release build
* History/WebHistory.mm:
(-[WebHistoryPrivate setLastVisitedTimeInterval:forItem:]): Removed underscore.
(-[WebHistoryPrivate loadFromURL:collectDiscardedItemsInto:error:]): Added #if.
(-[WebHistoryPrivate saveToURL:error:]): Ditto.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30847
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Thu, 6 Mar 2008 18:19:09 +0000 (18:19 +0000)]
- try to fix the Qt build
* JavaScriptCore.pri: Add the wtf/unicode directory.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30846
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Thu, 6 Mar 2008 18:18:06 +0000 (18:18 +0000)]
- try to fix the GTK build
* GNUmakefile.am: Add a -I for the unicode directory.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30845
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Thu, 6 Mar 2008 18:14:28 +0000 (18:14 +0000)]
- try to fix the Mac build
* icu/unicode/parseerr.h: Copied from ../WebCore/icu/unicode/parseerr.h.
* icu/unicode/ucol.h: Copied from ../WebCore/icu/unicode/ucol.h.
* icu/unicode/uloc.h: Copied from ../WebCore/icu/unicode/uloc.h.
* icu/unicode/unorm.h: Copied from ../WebCore/icu/unicode/unorm.h.
* icu/unicode/uset.h: Copied from ../WebCore/icu/unicode/uset.h.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30844
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Thu, 6 Mar 2008 17:51:26 +0000 (17:51 +0000)]
- fix some builds
* GNUmakefile.am: Added PageGroup.cpp.
* WebCore.base.exp: Removed WebCoreHistory.
* WebCore.pro: Added PageGroup.cpp.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30843
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ap@webkit.org [Thu, 6 Mar 2008 17:50:08 +0000 (17:50 +0000)]
Reviewed by Darin.
<rdar://problem/
5687269> Need to create a Collator abstraction for WebCore and JavaScriptCore
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30842
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mitz@apple.com [Thu, 6 Mar 2008 17:45:27 +0000 (17:45 +0000)]
Reviewed by Adele.
- add test for r30823 (background-position: inherit)
* fast/css/background-position-inherit-expected.txt: Added.
* fast/css/background-position-inherit.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30841
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Thu, 6 Mar 2008 17:21:55 +0000 (17:21 +0000)]
WebCore:
Reviewed by Mitz.
- fix http://bugs.webkit.org/show_bug.cgi?id=17526
REGRESSION: iframes are added to Safari's History menu
by separating the visited link machinery from global history
This should also make page loading faster due to more efficient visited link coloring.
* WebCore.base.exp: Updated.
* WebCore.vcproj/WebCore.vcproj: Added PageGroup.h/cpp, removed GlobalHistory.h/cpp.
* WebCore.xcodeproj/project.pbxproj: Ditto. Also removed WebCoreHistory.h/m.
* css/CSSStyleSelector.cpp: Updated includes.
(WebCore::CSSStyleSelector::initElementAndPseudoState): Eliminated code to set
currentEncodedURL.
(WebCore::checkPseudoState): Moved most of the code inside a new
PageGroup::isLinkVisited function.
(WebCore::CSSStyleSelector::canShareStyleWithElement): Tightened code a bit by using
references and only getting colors when needed.
(WebCore::CSSStyleSelector::getColorFromPrimitiveValue): Ditto.
* css/CSSStyleSelector.h: Removed EncodedURL, m_encodedURL, and setEncodedURL.
* dom/Document.cpp:
(WebCore::Document::attach): Removed call to setEncodedURL.
(WebCore::Document::setURL): Ditto.
(WebCore::Document::recalcStyleSelector): Ditto.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::addBackForwardItemClippedAtTarget): Changed code to use
early exit idiom to be a little more readable.
(WebCore::FrameLoader::urlsMatchItem): Change to use a reference for slightly
better efficiency.
(WebCore::FrameLoader::goToItem): Use early exit idiom to be a little more
readable.
(WebCore::FrameLoader::updateHistoryForStandardLoad): Moved history code back
in here and got rid of the helper function updateGlobalHistory, restoring the
logic before r30549. Also added a call to the new addVisitedLink function.
(WebCore::FrameLoader::updateHistoryForClientRedirect): Added code to call
addVisitedLink here.
(WebCore::FrameLoader::updateHistoryForBackForwardNavigation): Removed comment.
(WebCore::FrameLoader::updateHistoryForReload): Removed call to
updateGlobalHistory; we can just go without updating global history or
visited links here, at least for now, since it's not clear that a reload
is a "history event".
(WebCore::FrameLoader::updateHistoryForRedirectWithLockedHistory): Moved
history code back where it was, and added the call to addVisitedLink, just
as in updateHistoryForStandardLoad above.
* loader/FrameLoader.h: Removed updateGlobalHistory function.
* page/Chrome.cpp:
(WebCore::ChromeClient::populateVisitedLinks): Added. Empty placeholder so we
don't have to implement this for every port all at once.
(WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer): Changed to use the
new PageGroup class.
* page/ChromeClient.h: Added populateVisitedLinks function, used to fill the
visited links set from the global history at application startup time.
* page/FrameTree.cpp:
(WebCore::FrameTree::find): Updated to use the new PageGroup class.
* page/GlobalHistory.h: Removed.
* page/win/GlobalHistoryWin.cpp: Removed.
* page/mac/GlobalHistoryMac.mm: Removed.
* platform/mac/WebCoreHistory.h: Removed.
* platform/mac/WebCoreHistory.m: Removed.
* platform/win/WebCoreHistory.cpp: Removed.
* platform/win/WebCoreHistory.h: Removed.
* page/Page.cpp:
(WebCore::Page::Page): Set m_group to 0.
(WebCore::Page::setGroupName): Set up m_group. If the page is not in any
group, set it to 0 for now to postpone the cost of creating a group.
(WebCore::Page::initGroup): Added. Sets m_group to point to a single-page
group; used when getting a group.
(WebCore::Page::removeAllVisitedLinks): Added. Calls removeVisitedLinks
on all page groups.
* page/Page.h: Moved enums inside the WebCore namespace. Removed the
frameNamespace function and instead added the group and groupPtr functions.
* page/PageGroup.cpp: Added. Contains all the visited code from the
CSSStyleSelector in the isVisitedLink function, but more efficient because
we don't allocate memory for the buffer.
* page/PageGroup.h: Added.
* platform/gtk/TemporaryLinkStubs.cpp: Removed historyContains.
* platform/qt/TemporaryLinkStubs.cpp: Removed unneeded include.
* platform/wx/TemporaryLinkStubs.cpp: Removed historyContains.
WebKit:
* WebKit.xcodeproj/project.pbxproj: Added WebHistoryInternal.h.
WebKit/mac:
Reviewed by Mitz.
- fix http://bugs.webkit.org/show_bug.cgi?id=17526
REGRESSION: iframes are added to Safari's History menu
by separating the visited link machinery from global history
* History/WebHistory.mm: Moved WebHistoryPrivate inside this file.
(-[WebHistoryPrivate removeItemFromDateCaches:]): Removed the underscore from this
method name, since it's on a private object.
(-[WebHistoryPrivate removeItemForURLString:]): Added a call to the
PageGroup::removeAllVisitedLinks function if the last URL was removed.
(-[WebHistoryPrivate addItemToDateCaches:]): Removed the underscore from this
method name, since it's on a private object.
(-[WebHistoryPrivate removeAllItems]): Call PageGroup::removeAllVisitedLinks.
(-[WebHistoryPrivate ageLimitDate]): Removed the underscore from this
method name, since it's on a private object.
(-[WebHistoryPrivate loadHistoryGutsFromURL:savedItemsCount:collectDiscardedItemsInto:error:]):
Ditto.
(-[WebHistoryPrivate saveHistoryGuts:URL:error:]): Ditto. Also changed this
to correctly return the error by using the newer version of writeToURL: and
removed the FIXME about that.
(-[WebHistoryPrivate addVisitedLinksToPageGroup:]): Added. Calls addVisitedLink
for every link in the history.
(-[WebHistory saveToURL:error:]): Removed the FIXME, since we do get the error now.
(-[WebHistory addItem:]): Moved into the WebPrivate category.
(-[WebHistory addItemForURL:]): Ditto.
(-[WebHistory _addItemForURL:title:]): Added. Used for the normal case where we
create an item and already know its title.
(-[WebHistory ageLimitDate]): Moved into the WebPrivate category.
(-[WebHistory containsItemForURLString:]): Ditto.
(-[WebHistory removeItem:]): Ditto.
(-[WebHistory setLastVisitedTimeInterval:forItem:]): Ditto.
(-[WebHistory _itemForURLString:]): Ditto.
(-[WebHistory _addVisitedLinksToPageGroup:]): Added. For use only inside WebKit.
* History/WebHistoryInternal.h: Added.
* History/WebHistoryItemInternal.h: Tweaked formatting and includes.
* History/WebHistoryPrivate.h: Moved the WebHistoryPrivate class out of this header.
Also reorganized what was left behind.
* WebCoreSupport/WebChromeClient.h: Added populateVisitedLinks.
* WebCoreSupport/WebChromeClient.mm:
(WebChromeClient::populateVisitedLinks): Added a call to the new
-[WebHistory _addVisitedLinksToPageGroup:] method.
* WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::updateGlobalHistory): Changed code to use the new
-[WebHistory _addItemForURL:title:] method.
WebKit/win:
Reviewed by Mitz.
- fix http://bugs.webkit.org/show_bug.cgi?id=17526
REGRESSION: iframes are added to Safari's History menu
by separating the visited link machinery from global history
* WebCoreSupport/WebChromeClient.cpp:
(WebChromeClient::populateVisitedLinks): Added a call to the new
WebHistory::addVisitedLinksToPageGroup function.
* WebCoreSupport/WebChromeClient.h: Added populateVisitedLinks.
Also fixed the webView function to be non-virtual.
* WebCoreSupport/WebFrameLoaderClient.cpp:
(WebFrameLoaderClient::updateGlobalHistory): Changed to use the
new WebHistory::addItem function.
(WebFrameLoaderClient::webHistory): Changed to return a WebHistory*,
there's no reason to AddRef the result from this function.
* WebCoreSupport/WebFrameLoaderClient.h: Ditto.
* WebHistory.cpp: Removed IWebHistoryPrivate and _WebCoreHistoryProvider.
(WebHistory::QueryInterface): Removed IWebHistoryPrivate.
(sharedHistoryStorage): Added.
(WebHistory::sharedHistory): Added.
(WebHistory::optionalSharedHistory): Changed to use sharedHistory().
(WebHistory::setOptionalSharedHistory): Changed to require a WebHistory
object, not just an IWebHistory.
(WebHistory::removeAllItems): Call PageGroup::removeAllVisitedLinks.
(WebHistory::addItem): Changed parameter types since this is called with
arguments from WebCore -- at some point this could allow better efficiency.
(WebHistory::removeItemForURLString): Call PageGroup::removeAllVisitedLinks
if the last URL is being removed.
(addVisitedLinkToPageGroup): Added. Helper. Adds a single link to a group's
visited link set.
(WebHistory::addVisitedLinksToPageGroup): Added. Adds all links to a group's
visited link.
* WebHistory.h: Removed IWebHistoryPrivate. Removed optionalSharedHistoryInternal
and added sharedHistory. Replaced addItemForURL and containsItemForURLString with
non-virtual addItem and addVisitedLinksToPageGroup functions.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30840
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
timothy@apple.com [Thu, 6 Mar 2008 17:03:56 +0000 (17:03 +0000)]
Rubber-stamped by Adam Roben.
Add a simple page that has various demo functions for Drosera.
* demos/drosera: Added.
* demos/drosera/demo.js: Added.
* demos/drosera/drosera.png: Added.
* demos/drosera/index.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30839
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
aroben@apple.com [Thu, 6 Mar 2008 16:15:28 +0000 (16:15 +0000)]
Rename WebCoreScriptDebuggerImp.{h,mm} to WebScriptDebugger.{h,mm}
WebKit:
Rename WebCoreScriptDebuggerImp.{h,mm} to WebScriptDebugger.{h,mm}
Reviewed by Kevin M.
* WebKit.xcodeproj/project.pbxproj:
WebKit/mac:
Rename WebCoreScriptDebuggerImp.{h,mm} to WebScriptDebugger.{h,mm}
Reviewed by Kevin M.
* WebView/WebFrame.mm:
* WebView/WebScriptDebugDelegate.mm:
* WebView/WebScriptDebugger.h: Renamed from WebKit/mac/WebView/WebCoreScriptDebuggerImp.h.
* WebView/WebScriptDebugger.mm: Renamed from WebKit/mac/WebView/WebCoreScriptDebuggerImp.mm.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30838
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
aroben@apple.com [Thu, 6 Mar 2008 16:15:08 +0000 (16:15 +0000)]
Rename WebCoreScriptDebuggerImp to WebScriptDebugger
Reviewed by Kevin M.
* WebView/WebCoreScriptDebuggerImp.h:
* WebView/WebCoreScriptDebuggerImp.mm:
* WebView/WebFrame.mm:
(-[WebFrame _attachScriptDebugger]):
* WebView/WebFrameInternal.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30837
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
aroben@apple.com [Thu, 6 Mar 2008 16:14:49 +0000 (16:14 +0000)]
Remove WebScriptDebugger
WebKit:
Remove WebScriptDebugger
Reviewed by Kevin M.
* WebKit.xcodeproj/project.pbxproj: Remove
WebScriptDebugDelegatePrivate.h from the project.
WebKit/mac:
Remove WebScriptDebugger
Uses of WebScriptDebugger have been replaced with
WebCoreScriptDebuggerImp.
Reviewed by Kevin M.
* WebView/WebFrame.mm:
(-[WebFramePrivate dealloc]): Use delete instead of release since
WebCoreScriptDebuggerImp is a C++ class.
(-[WebFrame _attachScriptDebugger]): Updated to use early returns and
WebCoreScriptDebuggerImp.
(-[WebFrame _detachScriptDebugger]): Ditto.
* WebView/WebFrameInternal.h:
* WebView/WebScriptDebugDelegate.mm: Removed WebScriptDebugger
* WebView/WebScriptDebugDelegatePrivate.h: Removed.
* WebView/WebView.mm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30836
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
aroben@apple.com [Thu, 6 Mar 2008 16:14:27 +0000 (16:14 +0000)]
Remove -webFrame and -globalObject from WebScriptDebugger
WebCore:
Export a header/symbol for WebKit
Reviewed by Kevin M.
* WebCore.base.exp:
* WebCore.xcodeproj/project.pbxproj:
WebKit/mac:
Remove -webFrame and -globalObject from WebScriptDebugger
WebCoreScriptDebuggerImp is now unaware of WebScriptDebugger
Reviewed by Kevin M.
* WebView/WebCoreScriptDebuggerImp.h: Removed WebScriptDebugger*
parameter to the constructor.
* WebView/WebCoreScriptDebuggerImp.mm:
(toWebFrame): Added.
(WebCoreScriptDebuggerImp::sourceParsed): Call toWebFrame.
(WebCoreScriptDebuggerImp::callEvent): Ditto, and get the Frame's
WindowScriptObject ourselves instead of asking WebScriptDebugger for
it.
(WebCoreScriptDebuggerImp::atStatement): Call toWebFrame.
(WebCoreScriptDebuggerImp::returnEvent): Ditto.
(WebCoreScriptDebuggerImp::exception): Ditto.
* WebView/WebScriptDebugDelegate.mm:
(-[WebScriptDebugger initWithWebFrame:]): Updated for change to
WebScriptDebuggerImp's constructor.
* WebView/WebScriptDebugDelegatePrivate.h: Removed
-webFrame/-globalObject.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30835
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
aroben@apple.com [Thu, 6 Mar 2008 16:13:56 +0000 (16:13 +0000)]
Remove -enterFrame: and -leaveFrame from WebScriptDebugger
Reviewed by Kevin M.
* WebView/WebCoreScriptDebuggerImp.h: Changed to store m_topCallFrame
in a RetainPtr, now that WebCoreScriptDebuggerImp is in charge of its
lifetime.
* WebView/WebCoreScriptDebuggerImp.mm:
- Added declaration of -[WebScriptCallFrame
_initWithGlobalObject:caller:state:].
- Changed most uses of m_topCallFrame to m_topCallFrame.get()
(WebCoreScriptDebuggerImp::WebCoreScriptDebuggerImp): Removed
now-unnecessary initialization of m_topCallFrame.
(WebCoreScriptDebuggerImp::callEvent): Replaced call to enterFrame:
with its implementation. The one difference between this
implementation and the old enterFrame: method is that we don't hand
our reference to m_topCallFrame to _initWithGlobalObject: -- that
method must now retain the passed-in WebScriptCallFrame manually.
(WebCoreScriptDebuggerImp::atStatement):
(WebCoreScriptDebuggerImp::returnEvent): Replaced call to leaveFrame
with its implementation.
(WebCoreScriptDebuggerImp::exception):
* WebView/WebScriptDebugDelegate.mm: Removed declaration of
-[WebScriptCallFrame _initWithGlobalObject:caller:state:].
(-[WebScriptCallFrame _initWithGlobalObject:caller:state:]): Changed
to retain the passed-in caller.
* WebView/WebScriptDebugDelegatePrivate.h:
- Removed _current ivar
- Removed enterFrame:/leaveFrame declarations.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30834
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
aroben@apple.com [Thu, 6 Mar 2008 16:13:39 +0000 (16:13 +0000)]
Remove -parsedSource: from WebScriptDebugger
Reviewed by Kevin M.
* WebView/WebCoreScriptDebuggerImp.mm:
(WebCoreScriptDebuggerImp::sourceParsed): Moved code here from
-[WebScriptDebugger parsedSource:fromURL:sourceId:startLine:errorLine:errorMessage:]
* WebView/WebScriptDebugDelegate.mm: Removed -parsedSource:.
* WebView/WebScriptDebugDelegatePrivate.h: Ditto.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30833
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
aroben@apple.com [Thu, 6 Mar 2008 16:13:23 +0000 (16:13 +0000)]
Remove -enteredFrame:, -leavingFrame:, and -exceptionRaised: from WebScriptDebugger
Reviewed by Kevin M.
* WebView/WebCoreScriptDebuggerImp.mm:
(WebCoreScriptDebuggerImp::WebCoreScriptDebuggerImp): Changed to call
trhough to callEvent instead of duplicating its code here.
(WebCoreScriptDebuggerImp::callEvent): Moved code from
-[WebScriptDebugger enteredFrame:sourceId:line:] here.
(WebCoreScriptDebuggerImp::returnEvent): Moved code from
-[WebScriptDebugger leavingFrame:sourceId:line:] here.
(WebCoreScriptDebuggerImp::exception): Moved code from
-[WebScriptDebugger exceptionRaised:sourceId:line:] here.
* WebView/WebScriptDebugDelegate.mm: Removed -enteredFrame:,
-leavingFrame:, and -exceptionRaised:.
* WebView/WebScriptDebugDelegatePrivate.h: Ditto.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30832
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
aroben@apple.com [Thu, 6 Mar 2008 16:13:08 +0000 (16:13 +0000)]
Remove -[WebScriptDebugger hitStatement:sourceId:line:]
Reviewed by Kevin M.
* WebView/WebCoreScriptDebuggerImp.mm:
(WebCoreScriptDebuggerImp::atStatement): Moved code here from
-[WebScriptDebugger hitStatement:sourceId:line:].
* WebView/WebScriptDebugDelegate.mm:
(-[WebScriptDebugger webFrame]): Added.
* WebView/WebScriptDebugDelegatePrivate.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30831
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
aroben@apple.com [Thu, 6 Mar 2008 16:12:52 +0000 (16:12 +0000)]
Remove WebCoreScriptDebugger
WebKit:
Remove WebCoreScriptDebugger.{h,mm}
Reviewed by Kevin M.
* WebKit.xcodeproj/project.pbxproj:
WebKit/mac:
Remove WebCoreScriptDebugger
Reviewed by Kevin M.
* WebView/WebCoreScriptDebugger.h: Removed.
* WebView/WebCoreScriptDebugger.mm: Removed.
* WebView/WebCoreScriptDebuggerImp.h: Replaced WebCoreScriptDebugger
with WebScriptDebugger.
* WebView/WebCoreScriptDebuggerImp.mm: Ditto, and replaced [m_debugger
delegate] with just m_debugger.
(toNSString): Moved here from WebCoreScriptDebugger.mm.
(toNSURL): Ditto.
(WebCoreScriptDebuggerImp::WebCoreScriptDebuggerImp):
(WebCoreScriptDebuggerImp::sourceParsed):
(WebCoreScriptDebuggerImp::callEvent):
(WebCoreScriptDebuggerImp::atStatement):
(WebCoreScriptDebuggerImp::returnEvent):
(WebCoreScriptDebuggerImp::exception):
* WebView/WebScriptDebugDelegate.mm:
(-[WebScriptDebugger initWithWebFrame:]): _debugger now holds a
WebCoreScriptDebuggerImp, so initialize it properly.
* WebView/WebScriptDebugDelegatePrivate.h: Changed _debugger to hold a
WebCoreScriptDebuggerImp.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30830
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
aroben@apple.com [Thu, 6 Mar 2008 16:12:33 +0000 (16:12 +0000)]
Move WebCoreScriptDebuggerImp to its own source files
WebKit:
Move WebCoreScriptDebuggerImp to its own source files
Reviewed by Kevin M.
* WebKit.xcodeproj/project.pbxproj: Added new files to the project.
WebKit/mac:
Move WebCoreScriptDebuggerImp to its own source files
Also changed WebCoreScriptDebuggerImp coding style to match our style
guidelines.
Reviewed by Kevin M.
* WebView/WebCoreScriptDebugger.h: Added declaration of toNSURL
function.
* WebView/WebCoreScriptDebugger.mm: Removed WebCoreScriptDebuggerImp
implementation.
(toNSURL): Made no longer static.
* WebView/WebCoreScriptDebuggerImp.h: Added.
* WebView/WebCoreScriptDebuggerImp.mm: Added. Code was moved here from
WebCoreScriptDebugger.mm and cleaned up.
(WebCoreScriptDebuggerImp::WebCoreScriptDebuggerImp):
(WebCoreScriptDebuggerImp::sourceParsed):
(WebCoreScriptDebuggerImp::callEvent):
(WebCoreScriptDebuggerImp::atStatement):
(WebCoreScriptDebuggerImp::returnEvent):
(WebCoreScriptDebuggerImp::exception):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30829
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
aroben@apple.com [Thu, 6 Mar 2008 16:12:14 +0000 (16:12 +0000)]
Move -_enterFrame and -_leaveFrame from WebCoreScriptDebugger to WebScriptDebugger
Reviewed by Kevin M.
* WebView/WebCoreScriptDebugger.h:
- Removed newFrameWithGlobalObject:caller:state: from
WebScriptDebugger protocol
- Added enterFrame: and leaveFrame: to WebScriptDebugger protocol
- Removed _current ivar from WebCoreScriptDebugger
* WebView/WebCoreScriptDebugger.mm:
(WebCoreScriptDebuggerImp::callEvent): Changed to call enterFrame on
the delegate.
(WebCoreScriptDebuggerImp::returnEvent): Ditto for leaveFrame.
* WebView/WebScriptDebugDelegate.mm:
(-[WebScriptDebugger dealloc]): Added code to release _current.
(-[WebScriptDebugger enterFrame:]): Added. Code came from
WebCoreScriptDebugger.
(-[WebScriptDebugger leaveFrame]): Ditto.
* WebView/WebScriptDebugDelegatePrivate.h: Added _current ivar.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30828
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ddkilzer@apple.com [Thu, 6 Mar 2008 12:15:12 +0000 (12:15 +0000)]
Name the WebKit build phase script that generates WebKit.LP64.exp.
* WebKit.xcodeproj/project.pbxproj: Name the build phase script
that generates the 64-bit export file to match the corresponding
build phase script in WebCore.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30827
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mrowe@apple.com [Thu, 6 Mar 2008 09:40:57 +0000 (09:40 +0000)]
Fix 64-bit Mac build.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30826
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mrowe@apple.com [Thu, 6 Mar 2008 09:24:51 +0000 (09:24 +0000)]
Leopard build fix.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30825
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kevino@webkit.org [Thu, 6 Mar 2008 06:26:42 +0000 (06:26 +0000)]
Fix the wx build after the bindings move.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30824
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mitz@apple.com [Thu, 6 Mar 2008 06:20:53 +0000 (06:20 +0000)]
Reviewed by Adele Peterson.
- fix "background-position: inherit"
* css/CSSStyleSelector.cpp:
Made HANDLE_MULTILAYER_INHERIT_AND_INITIAL fall through and added
a return statement in HANDLE_MULTILAYER_VALUE. Also removed an unused
macro.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30823
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
alp@webkit.org [Thu, 6 Mar 2008 06:18:14 +0000 (06:18 +0000)]
2008-03-05 Alp Toker <alp@atoker.com>
Add a missing make dependency for derived sources to improve
autotools build dependency tracking.
Issue spotted by Ori Bernstein.
* GNUmakefile.am:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30822
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
alp@webkit.org [Thu, 6 Mar 2008 04:44:06 +0000 (04:44 +0000)]
2008-03-05 Alp Toker <alp@atoker.com>
GTK+ build fix for breakage introduced in r30800.
Track moved bridge sources from JavaScriptCore to WebCore.
* GNUmakefile.am:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30821
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
justin.garcia@apple.com [Thu, 6 Mar 2008 04:07:05 +0000 (04:07 +0000)]
WebCore:
Reviewed by Darin.
One part of fix for:
<rdar://problem/
5780697> Copying content with percentage based rules in a style sheet will cause fidelity issues
* editing/markup.cpp:
(WebCore::appendStartMarkup): Styles from matched rules should take precedence over those in
inline style declarations, not the other way around.
LayoutTests:
Reviewed by Darin.
<rdar://problem/
5780697> Copying content with CSS property values that are percentages can cause fidelity issues
* editing/pasteboard/
5780697-1-expected.txt: Added.
* editing/pasteboard/
5780697-1.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30820
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
alp@webkit.org [Thu, 6 Mar 2008 04:02:25 +0000 (04:02 +0000)]
Another buildbot fix attempt, pass SHELL=/bin/bash
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30819
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
alp@webkit.org [Thu, 6 Mar 2008 03:49:21 +0000 (03:49 +0000)]
2008-03-05 Alp Toker <alp@atoker.com>
Attempt to get the autotools build working again on the bot with
build-webkit.
Force the use of /bin/bash since we seem to have bash-isms in the
configure script right now.
* Scripts/webkitdirs.pm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30818
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mrowe@apple.com [Thu, 6 Mar 2008 02:21:36 +0000 (02:21 +0000)]
Fix typo in ChangeLog.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30817
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
andersca@apple.com [Thu, 6 Mar 2008 02:08:48 +0000 (02:08 +0000)]
Reviewed by Darin.
Move JNI specific code from runtime_root over to jni_jsobject, where it is used.
* bridge/jni/jni_jsobject.cpp:
(completedJavaScriptAccess):
(initializeJavaScriptAccessLock):
(lockJavaScriptAccess):
(unlockJavaScriptAccess):
(dispatchToJavaScriptThread):
(performJavaScriptAccess):
(JavaJSObject::initializeJNIThreading):
(isJavaScriptThread):
(JavaJSObject::invoke):
* bridge/jni/jni_jsobject.h:
* bridge/runtime_root.cpp:
* bridge/runtime_root.h:
* page/mac/WebCoreFrameBridge.mm:
(-[WebCoreFrameBridge init]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30816
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Thu, 6 Mar 2008 02:05:47 +0000 (02:05 +0000)]
Reviewed by Sam.
- add functions giving offsets within a KURL, slated to replace the
EncodedURL object in CSSStyleSelector (in a future "visited link" change)
- chagned all KURL data members names to use the traditional m_ prefix
- initialize all members to 0 in invalid KURLs rather than having all
functions check m_isValid
* platform/KURL.cpp:
(WebCore::KURL::invalidate): Added. Initializes all the fields except for
m_string to the "invalid" values. For use in the empty constructor and
in the init and parse functions.
(WebCore::KURL::init): Tweaked comments. Changed all code paths that return
early to use the invalidate() function. Updated for member variable name
changes.
(WebCore::KURL::hasPath): Updated for member variable name changes.
Remove now-unneeded check of m_isValid.
(WebCore::KURL::lastPathComponent): Ditto.
(WebCore::KURL::protocol): Ditto.
(WebCore::KURL::host): Ditto.
(WebCore::KURL::port): Ditto.
(WebCore::KURL::pass): Ditto.
(WebCore::KURL::user): Ditto.
(WebCore::KURL::ref): Ditto.
(WebCore::KURL::hasRef): Ditto.
(WebCore::KURL::protocolIs): Ditto.
(WebCore::KURL::query): Ditto.
(WebCore::KURL::path): Ditto.
(WebCore::KURL::setProtocol): Ditto.
(WebCore::KURL::setHost): Ditto.
(WebCore::KURL::setPort): Ditto.
(WebCore::KURL::setHostAndPort): Ditto.
(WebCore::KURL::setUser): Ditto.
(WebCore::KURL::setPass): Ditto.
(WebCore::KURL::setRef): Ditto.
(WebCore::KURL::setQuery): Ditto.
(WebCore::KURL::setPath): Ditto.
(WebCore::KURL::prettyURL): Ditto.
(WebCore::copyPathRemovingDots): Removed braces to match our code style.
(WebCore::KURL::parse): Changed all code paths that return early to use
the invalidate function. Moved code to set m_isValid to true to the very
end of the function. Removed braces to match our code style. Removed an
extra copy of the path/query/fragment code (there were two identical copies
in the two sides of an if statement). Removed some commented-out code.
Reversed an if statment. Added code to set the new m_pathAfterLastSlash
field. Updated for member variable name changes.
(WebCore::equalIgnoringRef): Updated for member variable name changes.
(WebCore::KURL::isHierarchical): Ditto.
* platform/KURL.h: Added a FIXME about ref vs. fragment. Made the empty
constructor inline and called the new invalidate function. Added new
pathStart, pathEnd, and pathAfterLastSlash functions, for use in the
new visited link code. Added an invalidate function. Renamed all the
data members to use the m_ prefix.
* WebCore.base.exp: Updated.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30815
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
andersca@apple.com [Thu, 6 Mar 2008 01:39:21 +0000 (01:39 +0000)]
Reviewed by Sam.
* WebCore.xcodeproj/project.pbxproj:
Change jni_jsobject.cpp to be Obj-C++ for now. The plan is to merge
this with jni_objc.mm and create jni_jsobject.mm.
* bridge/jni/jni_jsobject.cpp:
(createRootObject):
Move createRootObject here from WebCoreFrameBridge.
(JavaJSObject::createNative):
Call the newly added createRootObject function.
* bridge/runtime_root.cpp:
(KJS::Bindings::RootObject::initializeJNIThreading):
* bridge/runtime_root.h:
setCreateRootObject no longer takes a root object, rename it to initializeJNIThreading.
* page/mac/FrameMac.mm:
(WebCore::Frame::createScriptInstanceForWidget):
Just call Frame::createRootObject here.
* page/mac/WebCoreFrameBridge.mm:
(-[WebCoreFrameBridge init]):
Call initializeJNIThreading.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30814
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
andersca@apple.com [Wed, 5 Mar 2008 23:52:14 +0000 (23:52 +0000)]
Reviewed by Sam.
Change some static class variables to be regular static variables,
making it easier to move the chunk of mac-specific code out of runtime_root.[cpp|h]
* bridge/runtime_root.cpp:
(KJS::Bindings::completedJavaScriptAccess):
(KJS::Bindings::RootObject::dispatchToJavaScriptThread):
(KJS::Bindings::performJavaScriptAccess):
(KJS::Bindings::RootObject::createRootObject):
(KJS::Bindings::RootObject::runLoop):
(KJS::Bindings::RootObject::setCreateRootObject):
* bridge/runtime_root.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30813
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mrowe@apple.com [Wed, 5 Mar 2008 22:44:12 +0000 (22:44 +0000)]
2008-03-05 Brent Fulgham <bfulgham@gmail.com>
Reviewed by Adam Roben.
Modify source files to use the USE(SAFARI_THEME) macro, rather than
USE_SAFARI_THEME. (http://bugs.webkit.org/show_bug.cgi?id=17683)
* WebCore/platform/win/PlatformScrollBarSafari.cpp
* WebCore/rendering/RenderThemeSafari.cpp
* WebCore/rendering/RenderThemeSafari.h
* config.h: Move definition of WTF_USE_SAFARI_THEME here
2008-03-05 Brent Fulgham <bfulgham@gmail.com>
Reviewed by Adam Roben.
Remove definition of WTF_USE_SAFARI_THEME from wtf/Platform.h
because the PLATFORM(CG) flag is not set until config.h has
already included this file.
* wtf/Platform.h: Remove useless definition of WTF_USE_SAFARI_THEME
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30812
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
beidson@apple.com [Wed, 5 Mar 2008 22:26:34 +0000 (22:26 +0000)]
JavaScriptCore:
Reviewed by Alexey and Mark Rowe
Fix for <rdar://problem/
5778247> - Reproducible crash on storage/execute-sql-args.html
DatabaseThread::unscheduleDatabaseTasks() manually filters through a MessageQueue,
removing particular items for Databases that were shutting down.
This filtering operation is not atomic, and therefore causes a race condition with the
MessageQueue waking up and reading from the message queue.
The end result was an attempt to dereference a null DatabaseTask. Timing-wise, this never
seemed to happen in a debug build, otherwise an assertion would've caught it. Replacing that
assertion with a crash in a release build is what revealed this bug.
* wtf/MessageQueue.h:
(WTF::::waitForMessage): Tweak the waiting logic to check the queue's empty state then go back
to sleep if the queue was empty - checking m_killed each time it wakes up.
WebCore:
Reviewed by Alexey and Mark Rowe
Fix for <rdar://problem/
5778247> - Reproducible crash on storage/execute-sql-args.html
DatabaseThread::unscheduleDatabaseTasks() manually filters through a MessageQueue,
removing particular items for Databases that were shutting down.
This filtering operation is not atomic, and therefore causes a race condition with the
database thread waking up and reading from the message queue.
The end result was an attempt to dereference a null DatabaseTask. Timing-wise, this never
seemed to happen in a debug build, otherwise an assertion would've caught it. Replacing that
assertion with a crash in a release build is what revealed this bug.
The fix for the above symptom was entirely in WTF::MessageQueue in JSCore. With this fix in
place, another crash popped up in the layout tests that was related to dereferencing a
deallocated object - simply because SQLTransaction had a raw pointer to it's Database object
when it needed to be a ref pointer.
* storage/SQLTransaction.cpp:
(WebCore::SQLTransaction::runCurrentStatement):
* storage/SQLTransaction.h: Change m_database to be a RefPtr
(WebCore::SQLTransaction::database):
LayoutTests:
Reviewed by Alexey + Mark Rowe
Fix for <rdar://problem/
5778247> - Reproducible crash on storage/execute-sql-args.html
This test takes its best shot at handling two databases on a single database thread at once,
then having one of those databases go away completely (garbage collection and everything)
* storage/multiple-databases-garbage-collection-expected.txt: Added.
* storage/multiple-databases-garbage-collection.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30811
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ddkilzer@apple.com [Wed, 5 Mar 2008 22:20:12 +0000 (22:20 +0000)]
Remove unused header includes from interpreter.cpp.
Reviewed by Darin.
* kjs/interpreter.cpp: Remove unused header includes.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30810
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mrowe@apple.com [Wed, 5 Mar 2008 22:08:17 +0000 (22:08 +0000)]
Build fix. Remove symbol that no longer exists from the exports file.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30809
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ddkilzer@apple.com [Wed, 5 Mar 2008 21:51:58 +0000 (21:51 +0000)]
Fixed commit date.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30808
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
alp@webkit.org [Wed, 5 Mar 2008 20:56:19 +0000 (20:56 +0000)]
2008-03-05 Alp Toker <alp@atoker.com>
Re-attempt to switch to the autotools build system for GTK+.
Change scripts to continue when distclean fails.
* Scripts/webkitdirs.pm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30807
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
aroben@apple.com [Wed, 5 Mar 2008 19:35:32 +0000 (19:35 +0000)]
Remove WebCoreScriptCallFrame
Reviewed by Tim.
* WebView/WebCoreScriptDebugger.h:
- Replaced WebCoreScriptCallFrame with WebScriptCallFrame
- Replaced -newWrapperForFrame: with
-newFrameWithGlobalObject:caller:state:
- Removed WebCoreScriptCallFrame interface.
* WebView/WebCoreScriptDebugger.mm: Replaced WebCoreScriptCallFrame
with WebScriptCallFrame.
(-[WebCoreScriptDebugger _enterFrame:]): Changed to call
-newFrameWithGlobalObject:caller:state.
(-[WebCoreScriptDebugger _leaveFrame]):
* WebView/WebScriptDebugDelegate.h: Changed WebScriptCallFrame's
_private ivar to be of type WebScriptCallFramePrivate*.
* WebView/WebScriptDebugDelegate.mm:
- Replaced WebCoreScriptCallFrame with WebScriptCallFrame
- Added WebScriptCallFramePrivate
(-[WebScriptDebugger enteredFrame:sourceId:line:]):
(-[WebScriptDebugger hitStatement:sourceId:line:]):
(-[WebScriptDebugger leavingFrame:sourceId:line:]):
(-[WebScriptDebugger exceptionRaised:sourceId:line:]):
(-[WebScriptCallFramePrivate dealloc]): Added.
(-[WebScriptCallFrame _initWithGlobalObject:caller:state:]): Added.
Code came from WebCoreScriptCallFrame.
(-[WebScriptCallFrame dealloc]): Added a call to release the _private
ivar.
(-[WebScriptCallFrame _convertValueToObjcValue:]): Replaced calls to
_private with direct access of _private's ivars.
(-[WebScriptCallFrame caller]): Ditto.
(-[WebScriptCallFrame scopeChain]): Ditto.
(-[WebScriptCallFrame evaluateWebScript:]): Ditto.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30806
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
aroben@apple.com [Wed, 5 Mar 2008 19:35:09 +0000 (19:35 +0000)]
Move -_convertValueToObjcValue to WebScriptCallFrame
Reviewed by Darin.
* WebView/WebCoreScriptDebugger.h: Removed declaration of
-_convertValueToObjcValue.
* WebView/WebCoreScriptDebugger.mm: Removed -_convertValueToObjcValue.
* WebView/WebScriptDebugDelegate.mm:
(-[WebScriptCallFrame _convertValueToObjcValue:]): Added. Code came
from -[WebCoreScriptCallFrame _convertValueToObjcValue].
(-[WebScriptCallFrame scopeChain]): Changed to call
-_convertValueToObjcValue on self instead of _private.
(-[WebScriptCallFrame exception]): Ditto.
(-[WebScriptCallFrame evaluateWebScript:]): Ditto.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30805
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
aroben@apple.com [Wed, 5 Mar 2008 19:34:44 +0000 (19:34 +0000)]
Move -exception and -evaluateWebScript: to WebScriptCallFrame
Reviewed by Darin.
* WebView/WebCoreScriptDebugger.h: Removed declarations of -exception
and -evaluateWebScript:.
* WebView/WebCoreScriptDebugger.mm: Removed -exception and
-evaluateWebScript:.
* WebView/WebScriptDebugDelegate.mm:
(-[WebScriptCallFrame exception]): Added. Code came from
-[WebCoreScriptCallFrame exception].
(-[WebScriptCallFrame evaluateWebScript:]): Added. Code came from
-[WebCoreScriptCallFrame evaluateWebScript:].
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30804
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
aroben@apple.com [Wed, 5 Mar 2008 19:34:29 +0000 (19:34 +0000)]
Move -scopeChain to WebScriptCallFrame
Reviewed by Darin.
* WebView/WebCoreScriptDebugger.h:
- Added declarations of -globalObject and -_convertValueToObjcValue:
to WebCoreScriptCallFrame
- Removed declaration of -scopeChain.
* WebView/WebCoreScriptDebugger.mm: Moved -_convertValueToObjcValue
within the main WebCoreScriptCallFrame implementation.
(-[WebCoreScriptCallFrame globalObject]): Added.
* WebView/WebScriptDebugDelegate.mm:
(-[WebScriptCallFrame scopeChain]): Added. Code came from
-[WebCoreScriptCallFrame scopeChain].
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30803
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
aroben@apple.com [Wed, 5 Mar 2008 19:34:13 +0000 (19:34 +0000)]
Move -functionName from WebCoreScriptCallFrame to WebScriptCallFrame
Reviewed by Darin.
* WebView/WebCoreScriptDebugger.h:
- Removed #else case of #ifdef __cplusplus since this file is only
ever used by C++ Objective-C files
- Removed 'using KJS::ExecState' statement since we prefer not to
have using statements in header files
- Consequently prefixed uses of ExecState with KJS::
- Added declaration of toNSString method that takes a const
UString&
- Added declaration of -[WebCoreScriptCallFrame state]
- Removed declaration of -[WebCoreScriptCallFrame functionName]
* WebView/WebCoreScriptDebugger.mm:
(toNSString): Made this no longer static.
(-[WebCoreScriptCallFrame state]): Added.
* WebView/WebScriptDebugDelegate.mm:
(-[WebScriptCallFrame functionName]): Added. Code came from
-[WebCoreScriptCallFrame functionName], though I changed some nested
ifs into early returns.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30802
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
aroben@apple.com [Wed, 5 Mar 2008 19:33:58 +0000 (19:33 +0000)]
Move WebCoreScriptDebugger up to WebKit
WebCore:
Move WebCoreScriptDebugger up to WebKit
Reviewed by Darin.
* WebCore.base.exp: Exported some functions used by
WebCoreScriptDebugger, and sorted the list.
* WebCore.xcodeproj/project.pbxproj: Removed
WebCoreScriptDebugger.{h,mm} from the project and marked
a few headers private so that WebKit can use them.
* page/mac/WebCoreScriptDebugger.h: Removed.
* page/mac/WebCoreScriptDebugger.mm: Removed.
WebKit:
Move WebCoreScriptDebugger to WebKit
Reviewed by Darin.
* WebKit.xcodeproj/project.pbxproj: Added WebCoreScriptDebugger.{h,mm}
to the project.
WebKit/mac:
Move WebCoreScriptDebugger to WebKit
Reviewed by Darin.
* WebView/WebCoreScriptDebugger.h: Renamed from WebCore/page/mac/WebCoreScriptDebugger.h.
* WebView/WebCoreScriptDebugger.mm: Renamed from WebCore/page/mac/WebCoreScriptDebugger.mm.
(toNSString):
(toNSURL):
(WebCoreScriptDebuggerImp::WebCoreScriptDebuggerImp):
(WebCoreScriptDebuggerImp::sourceParsed):
(WebCoreScriptDebuggerImp::callEvent):
(WebCoreScriptDebuggerImp::atStatement):
(WebCoreScriptDebuggerImp::returnEvent):
(WebCoreScriptDebuggerImp::exception):
(+[WebCoreScriptDebugger initialize]):
(-[WebCoreScriptDebugger initWithDelegate:]):
(-[WebCoreScriptDebugger dealloc]):
(-[WebCoreScriptDebugger finalize]):
(-[WebCoreScriptDebugger delegate]):
(-[WebCoreScriptDebugger _enterFrame:]):
(-[WebCoreScriptDebugger _leaveFrame]):
(-[WebCoreScriptCallFrame _initWithGlobalObject:caller:state:]):
(-[WebCoreScriptCallFrame _setWrapper:]):
(-[WebCoreScriptCallFrame _convertValueToObjcValue:]):
(-[WebCoreScriptCallFrame dealloc]):
(-[WebCoreScriptCallFrame wrapper]):
(-[WebCoreScriptCallFrame caller]):
(-[WebCoreScriptCallFrame scopeChain]):
(-[WebCoreScriptCallFrame functionName]):
(-[WebCoreScriptCallFrame exception]):
(-[WebCoreScriptCallFrame evaluateWebScript:]):
* WebView/WebScriptDebugDelegate.mm: Updated header path.
* WebView/WebScriptDebugDelegatePrivate.h: Ditto.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30801
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
andersca@apple.com [Wed, 5 Mar 2008 19:14:50 +0000 (19:14 +0000)]
Reviewed by Sam.
Remove bindings/.
* bindings: Removed.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30800
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
andersca@apple.com [Wed, 5 Mar 2008 19:13:48 +0000 (19:13 +0000)]
Build fix.
* WebKit.vcproj/WebKit.vcproj:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30799
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
andersca@apple.com [Wed, 5 Mar 2008 19:12:51 +0000 (19:12 +0000)]
Build bridge/. Copy some headers over to WebKit as part of the post-build step.
* WebCore.vcproj/WebCore.vcproj:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30798
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
andersca@apple.com [Wed, 5 Mar 2008 19:11:39 +0000 (19:11 +0000)]
Don't build bindings/ anymore.
* JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30797
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
andersca@apple.com [Wed, 5 Mar 2008 19:04:21 +0000 (19:04 +0000)]
JavaScriptCore:
Reviewed by Geoff.
Don't build JavaScriptCore/bindings.
* JavaScriptCore.exp:
Export a couple of new functions.
* JavaScriptCore.xcodeproj/project.pbxproj:
Remove bindings/
* kjs/config.h:
No need to define HAVE_JNI anymore.
* kjs/interpreter.cpp:
Remove unnecessary include.
WebCore:
Reviewed by Geoff.
* WebCore.base.exp:
Add the NPN and KJS methods.
* WebCore.xcodeproj/project.pbxproj:
Bring in bridge/
* config.h:
Add HAVE_JNI define.
* bindings/js/kjs_html.cpp:
* bindings/objc/DOMInternal.mm:
* bindings/objc/DOMUtility.mm:
* bindings/objc/WebScriptObject.mm:
* html/HTMLAppletElement.cpp:
* html/HTMLEmbedElement.cpp:
* html/HTMLObjectElement.cpp:
* html/HTMLPlugInElement.cpp:
* page/Frame.cpp:
* page/mac/FrameMac.mm:
* page/mac/WebCoreFrameBridge.mm:
* page/mac/WebCoreScriptDebugger.mm:
* plugins/win/PluginViewWin.cpp:
Include file changes.
WebKit/mac:
Reviewed by Geoff.
Include file changes.
* Plugins/WebBaseNetscapePluginView.mm:
* Plugins/WebNetscapePluginPackage.m:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30796
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ddkilzer@apple.com [Wed, 5 Mar 2008 18:19:12 +0000 (18:19 +0000)]
Allow override of default script file name using command-line argument.
Reviewed by Adele.
* API/minidom.c:
(main): Allow first command-line argument to override the default script
file name of "minidom.js".
* API/testapi.c:
(main): Allow first command-line argument to override the default script
file name of "testapi.js".
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30795
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
andersca@apple.com [Wed, 5 Mar 2008 17:02:17 +0000 (17:02 +0000)]
Reviewed by Sam.
Rewrite NPRuntime string conversion routines to use WebCore::String
* bridge/NP_jsobject.cpp:
(_NPN_Evaluate):
* bridge/c/c_utility.cpp:
(KJS::Bindings::convertUTF8ToUTF16WithLatin1Fallback):
(KJS::Bindings::convertNPVariantToValue):
(KJS::Bindings::convertNPStringToUTF16):
(KJS::Bindings::identifierFromNPIdentifier):
* bridge/c/c_utility.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30794
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
oliver@apple.com [Wed, 5 Mar 2008 09:13:42 +0000 (09:13 +0000)]
Small performance improvement to putImageData (3-5% on assignment in my tests)
Reviewed by Alexey P
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30793
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
alp@webkit.org [Wed, 5 Mar 2008 08:44:28 +0000 (08:44 +0000)]
2008-03-05 Alp Toker <alp@atoker.com>
Force qmake for the GTK+ build until we get the build bot to succeed
with autotools (currently dies at make distclean)
* Scripts/webkitdirs.pm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30792
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
weinig@apple.com [Wed, 5 Mar 2008 07:31:01 +0000 (07:31 +0000)]
Reviewed by Adele.
* bindings/js/JSXMLHttpRequest.h: Remove unnecessary override of toBoolean.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30791
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mjs@apple.com [Wed, 5 Mar 2008 07:08:43 +0000 (07:08 +0000)]
WebCore:
Reviewed by Sam and Oliver.
- fixed http://bugs.webkit.org/show_bug.cgi?id=16289
- fixed Acid3 tests 26 and 27 (not exactly the same issue but related)
* bindings/js/JSNodeCustom.cpp:
(WebCore::JSNode::mark): When marking a node that's in-document,
mark the owner document if it hasn't been already. This means holding on
to a single node from an unreferenced document now keeps the whole document alive.
We are now at 90/100 on Acid3.
LayoutTests:
Reviewed by Sam and Oliver.
- test for http://bugs.webkit.org/show_bug.cgi?id=16289
- test for Acid3 tests 26 and 27 (not exactly the same issue but related)
* fast/dom/gc-11-expected.txt: Added. Test case from bug 16289.
* fast/dom/gc-11.html: Added.
* fast/dom/gc-acid3.html: Added. DOM garbage collection part of Acid3.
* fast/dom/gc-acid3-expected.txt: Added.
* fast/dom/gc-6-expected.txt: Updated results. The old assumptions of this test
were in conflict with the requirements of Acid3.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30790
268f45cc-cd09-0410-ab3c-
d52691b4dbfc