1. 03 Nov, 2008 1 commit
  2. 02 Nov, 2008 1 commit
  3. 01 Nov, 2008 3 commits
    • abarth@webkit.org's avatar
      WebCore: · a796cc07
      abarth@webkit.org authored
      2008-11-01  Adam Barth  <abarth@webkit.org>
      
              Reviewed by Sam Weinig.
      
              Be sure to check the final URLs of requested resources to make sure we
              don't get fooled by HTTP redirects.
      
              https://bugs.webkit.org/show_bug.cgi?id=21963
      
              Tests: http/tests/security/xss-DENIED-xsl-document-redirect.xml
                     http/tests/security/xss-DENIED-xsl-external-entity-redirect.xml
      
              * dom/XMLTokenizerLibxml2.cpp:
              (WebCore::openFunc):
              * loader/DocLoader.cpp:
              (WebCore::DocLoader::canRequest):
              (WebCore::DocLoader::requestResource):
              * loader/DocLoader.h:
              * xml/XSLTProcessor.cpp:
              (WebCore::docLoaderFunc):
      
      LayoutTests:
      
      2008-11-01  Adam Barth  <abarth@webkit.org>
      
              Reviewed by Sam Weinig.
      
              Test that we properly block non-same-origin redirects for these
              esoteric loads.
      
              https://bugs.webkit.org/show_bug.cgi?id=21963
      
              * http/tests/security/resources/xsl-using-document-redirect.xsl: Added.
              * http/tests/security/resources/xsl-using-external-entity-redirect.xsl: Added.
              * http/tests/security/xss-DENIED-xsl-document-redirect-expected.txt: Copied from LayoutTests/http/tests/security/xss-DENIED-xsl-document-expected.txt.
              * http/tests/security/xss-DENIED-xsl-document-redirect.xml: Added.
              * http/tests/security/xss-DENIED-xsl-external-entity-redirect-expected.txt: Copied from LayoutTests/http/tests/security/xss-DENIED-xsl-external-entity-expected.txt.
              * http/tests/security/xss-DENIED-xsl-external-entity-redirect.xml: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@38065 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a796cc07
    • ap@webkit.org's avatar
      Reviewed by Darin Adler. · ec7365b9
      ap@webkit.org authored
              https://bugs.webkit.org/show_bug.cgi?id=22001
              AtomicStringImpl* keys of event listener maps can outlive their strings
      
              Test: fast/events/destroyed-atomic-string.html
      
              * dom/MessagePort.cpp:
              (WebCore::MessagePort::addEventListener):
              (WebCore::MessagePort::removeEventListener):
              (WebCore::MessagePort::dispatchEvent):
              * dom/MessagePort.h:
              * loader/appcache/DOMApplicationCache.cpp:
              (WebCore::DOMApplicationCache::addEventListener):
              (WebCore::DOMApplicationCache::removeEventListener):
              (WebCore::DOMApplicationCache::dispatchEvent):
              * loader/appcache/DOMApplicationCache.h:
              * xml/XMLHttpRequest.cpp:
              (WebCore::XMLHttpRequest::addEventListener):
              (WebCore::XMLHttpRequest::removeEventListener):
              (WebCore::XMLHttpRequest::dispatchEvent):
              * xml/XMLHttpRequest.h:
              * xml/XMLHttpRequestUpload.cpp:
              (WebCore::XMLHttpRequestUpload::addEventListener):
              (WebCore::XMLHttpRequestUpload::removeEventListener):
              (WebCore::XMLHttpRequestUpload::dispatchEvent):
              * xml/XMLHttpRequestUpload.h:
              Changed EventListenersMap to use AtomicString as key (instead of AtomicStringImpl*).
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@38064 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ec7365b9
    • ap@webkit.org's avatar
      Reviewed by Darin Adler. · f319b265
      ap@webkit.org authored
              https://bugs.webkit.org/show_bug.cgi?id=21998
              Use JSDOMGlobalObject in EventListener-related bindings
      
              * dom/MessagePort.idl: Auto-generate bindings for onclose and onmessage.
      
              * bindings/scripts/CodeGeneratorJS.pm: Use JSDOMGlobalObject instead of JSDOMWindow in JS
              bindings for inline event handlers.
      
              * bindings/js/JSDOMApplicationCacheCustom.cpp:
              (WebCore::JSDOMApplicationCache::addEventListener):
              (WebCore::JSDOMApplicationCache::removeEventListener):
              * bindings/js/JSEventTargetNodeCustom.cpp:
              (WebCore::JSEventTargetNode::addEventListener):
              (WebCore::JSEventTargetNode::removeEventListener):
              * bindings/js/JSMessagePortCustom.cpp:
              (WebCore::JSMessagePort::removeEventListener):
              * bindings/js/JSSVGElementInstanceCustom.cpp:
              (WebCore::JSSVGElementInstance::addEventListener):
              (WebCore::JSSVGElementInstance::removeEventListener):
              * bindings/js/JSXMLHttpRequestCustom.cpp:
              (WebCore::JSXMLHttpRequest::addEventListener):
              (WebCore::JSXMLHttpRequest::removeEventListener):
              * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
              (WebCore::JSXMLHttpRequestUpload::addEventListener):
              (WebCore::JSXMLHttpRequestUpload::removeEventListener):
              Use ScriptExecutionContext and JSDOMGlobalObject in bindings.
      
              * dom/EventTarget.h:
              * dom/EventTargetNode.cpp:
              (WebCore::EventTargetNode::scriptExecutionContext):
              * dom/EventTargetNode.h:
              * dom/MessagePort.cpp:
              * dom/MessagePort.h:
              (WebCore::MessagePort::scriptExecutionContext):
              * loader/appcache/DOMApplicationCache.cpp:
              (WebCore::DOMApplicationCache::scriptExecutionContext):
              * loader/appcache/DOMApplicationCache.h:
              * svg/SVGElementInstance.cpp:
              (WebCore::SVGElementInstance::scriptExecutionContext):
              * svg/SVGElementInstance.h:
              * xml/XMLHttpRequest.cpp:
              (WebCore::XMLHttpRequest::scriptExecutionContext):
              * xml/XMLHttpRequest.h:
              * xml/XMLHttpRequestUpload.cpp:
              (WebCore::XMLHttpRequestUpload::scriptExecutionContext):
              * xml/XMLHttpRequestUpload.h:
              Remove associatedFrame() method, and provide scriptExecutionContext() where it wasn't
              available yet.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@38063 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f319b265
  4. 31 Oct, 2008 9 commits
    • cwzwarich@webkit.org's avatar
      2008-10-31 Cameron Zwarich <zwarich@apple.com> · 16e3891a
      cwzwarich@webkit.org authored
              Rubber-stamped by Geoff Garen.
      
              Rename SourceRange.h to SourceCode.h.
      
              JavaScriptCore:
      
              * API/JSBase.cpp:
              * GNUmakefile.am:
              * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
              * JavaScriptCore.xcodeproj/project.pbxproj:
              * VM/CodeBlock.h:
              * kjs/SourceCode.h: Copied from kjs/SourceRange.h.
              * kjs/SourceRange.h: Removed.
              * kjs/grammar.y:
              * kjs/lexer.h:
              * kjs/nodes.cpp:
              (JSC::ForInNode::ForInNode):
              * kjs/nodes.h:
              (JSC::ThrowableExpressionData::setExceptionSourceCode):
      
              WebCore:
      
              * ForwardingHeaders/kjs/SourceCode.h: Copied from ForwardingHeaders/kjs/SourceRange.h.
              * ForwardingHeaders/kjs/SourceRange.h: Removed.
              * bindings/js/StringSourceProvider.h:
              * bridge/NP_jsobject.cpp:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@38061 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      16e3891a
    • cwzwarich@webkit.org's avatar
      2008-10-31 Cameron Zwarich <zwarich@apple.com> · 7d328d5f
      cwzwarich@webkit.org authored
              Reviewed by Darin Adler.
      
              Bug 22019: Move JSC::Interpreter::shouldPrintExceptions() to WebCore::Console
              <https://bugs.webkit.org/show_bug.cgi?id=22019>
      
              The JSC::Interpreter::shouldPrintExceptions() function is not used at
              all in JavaScriptCore, so it should be moved to WebCore::Console, its
              only user.
      
              JavaScriptCore:
      
              * JavaScriptCore.exp:
              * kjs/interpreter.cpp:
              * kjs/interpreter.h:
      
              WebCore:
      
              * WebCore.base.exp:
              * page/Console.cpp:
              (WebCore::printToStandardOut):
              (WebCore::Console::shouldPrintExceptions):
              (WebCore::Console::setShouldPrintExceptions):
              * page/Console.h:
      
              WebKit/mac:
      
              * Misc/WebCoreStatistics.mm:
              (+[WebCoreStatistics shouldPrintExceptions]):
              (+[WebCoreStatistics setShouldPrintExceptions:]):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@38060 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7d328d5f
    • mitz@apple.com's avatar
      WebCore: · b7f8848d
      mitz@apple.com authored
              Reviewed by John Sullivan.
      
              - WebCore part of <rdar://problem/6334641> Add WebView SPI for disabling document.cookie
      
              * dom/Document.cpp:
              (WebCore::Document::cookie): Added checking if cookies are disabled.
              (WebCore::Document::setCookie): Ditto.
              * page/Navigator.cpp:
              (WebCore::Navigator::cookieEnabled): Ditto.
              * page/Page.cpp:
              (WebCore::Page::Page): Initialize m_cookieEnabled to true.
              * page/Page.h:
              (WebCore::Page::cookieEnabled): Added.
              (WebCore::Page::setCookieEnabled): Added.
      
      WebKit/mac:
      
              Reviewed by John Sullivan.
      
              - WebKit/mac part of <rdar://problem/6334641> Add WebView SPI for disabling document.cookie
      
              * WebView/WebView.mm:
              (-[WebView _cookieEnabled]):
              (-[WebView _setCookieEnabled:]):
              * WebView/WebViewPrivate.h:
      
      WebKit/win:
      
              Reviewed by John Sullivan.
      
              - WebKit/win part of <rdar://problem/6334641> Add WebView SPI for disabling document.cookie
      
              * Interfaces/IWebViewPrivate.idl:
              * WebView.cpp:
              (WebView::setCookieEnabled):
              (WebView::cookieEnabled):
              * WebView.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@38058 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b7f8848d
    • adele@apple.com's avatar
      WebCore: · ae80b36e
      adele@apple.com authored
      2008-10-31  Adele Peterson  <adele@apple.com>
      
              Reviewed by Darin Adler.
      
              WebCore Windows part of fix for <rdar://problem/5839256> FILE CONTROL: multi-file upload.
              https://bugs.webkit.org/show_bug.cgi?id=22008
      
              * platform/FileChooser.cpp: (WebCore::FileChooser::chooseIcon): 
              Rename newIconForFile and newIconForFiles to createIconForFile and createIconForFiles.
              * platform/graphics/Icon.h: ditto.
              * platform/graphics/gtk/IconGtk.cpp:
              (WebCore::Icon::createIconForFile): ditto.
              (WebCore::Icon::createIconForFiles): ditto.
              * platform/graphics/mac/IconMac.mm:
              (WebCore::Icon::createIconForFile): ditto.
              (WebCore::Icon::createIconForFiles): ditto.
              * platform/graphics/qt/IconQt.cpp:
              (WebCore::Icon::createIconForFile): ditto.
              (WebCore::Icon::createIconForFiles): ditto.
              * platform/wx/TemporaryLinkStubs.cpp:
              (Icon::createIconForFile): ditto.
              (Icon::createIconForFiles): ditto.
              * platform/graphics/win/IconWin.cpp:
              (WebCore::Icon::createIconForFile): ditto.
              (WebCore::Icon::createIconForFiles): Add creation of an icon for multiple files.
      
              * rendering/RenderThemeWin.cpp: (WebCore::RenderThemeWin::paintSearchFieldResultsDecoration):        
              Improve icon creation code to match new code in Icon::createIconForFiles
      
      WebKit/win:
      
      2008-10-31  Adele Peterson  <adele@apple.com>
      
              Reviewed by Darin Adler.
      
              WebKit Windows part of fix for <rdar://problem/5839256> FILE CONTROL: multi-file upload.
              https://bugs.webkit.org/show_bug.cgi?id=22008
              
              * WebCoreSupport/WebChromeClient.cpp: (WebChromeClient::runOpenPanel): 
              Add support for mulitple file selection.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@38057 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ae80b36e
    • timothy@apple.com's avatar
      Emit the WillExecuteStatement debugger hook before the for loop body when the... · fae1018f
      timothy@apple.com authored
      Emit the WillExecuteStatement debugger hook before the for loop body when the statement node for the body isn't a block. This allows breakpoints on those statements in the Web Inspector.
      
      JavaScriptCore:
      
      2008-10-31  Timothy Hatcher  <timothy@apple.com>
      
              Emit the WillExecuteStatement debugger hook before the for loop body
              when the statement node for the body isn't a block. This allows
              breakpoints on those statements in the Web Inspector.
      
              https://bugs.webkit.org/show_bug.cgi?id=22004
      
              Reviewed by Darin Adler.
      
              * kjs/nodes.cpp:
              (JSC::ForNode::emitCode): Emit the WillExecuteStatement
              debugger hook before the statement node if isn't a block.
              Also emit the WillExecuteStatement debugger hook for the
              loop as the first op-code.
              (JSC::ForInNode::emitCode): Ditto.
      
      WebCore:
      
      2008-10-31  Timothy Hatcher  <timothy@apple.com>
      
              Add manual tests that check breakpoints on a blockless body of "for" loops.
      
              https://bugs.webkit.org/show_bug.cgi?id=22004
      
              Reviewed by Darin Adler.
      
              * manual-tests/inspector/debugger-pause-on-for-in-statements.html: Added.
              * manual-tests/inspector/debugger-pause-on-for-statements.html: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@38040 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      fae1018f
    • darin@apple.com's avatar
      2008-10-31 Darin Adler <darin@apple.com> · 61934917
      darin@apple.com authored
              - fix build
      
              * platform/win/WCDataObject.cpp: Added missing include of "config.h".
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@38039 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      61934917
    • ap@webkit.org's avatar
      Reviewed by Darin Adler. · be35d511
      ap@webkit.org authored
              https://bugs.webkit.org/show_bug.cgi?id=21970
              Make MessagePort event dispatch work in workers
      
              * bindings/js/JSDOMGlobalObject.cpp:
              (WebCore::JSDOMGlobalObject::JSDOMGlobalObjectData::JSDOMGlobalObjectData):
              (WebCore::JSDOMGlobalObject::~JSDOMGlobalObject):
              (WebCore::JSDOMGlobalObject::findJSEventListener):
              (WebCore::JSDOMGlobalObject::findOrCreateJSEventListener):
              (WebCore::JSDOMGlobalObject::findJSUnprotectedEventListener):
              (WebCore::JSDOMGlobalObject::findOrCreateJSUnprotectedEventListener):
              (WebCore::JSDOMGlobalObject::jsEventListeners):
              (WebCore::JSDOMGlobalObject::jsInlineEventListeners):
              (WebCore::JSDOMGlobalObject::jsUnprotectedEventListeners):
              (WebCore::JSDOMGlobalObject::jsUnprotectedInlineEventListeners):
              (WebCore::JSDOMGlobalObject::setCurrentEvent):
              (WebCore::JSDOMGlobalObject::currentEvent):
              (WebCore::toJSDOMGlobalObject):
              * bindings/js/JSDOMGlobalObject.h:
              * bindings/js/JSDOMWindowBase.cpp:
              (WebCore::JSDOMWindowBase::JSDOMWindowBaseData::JSDOMWindowBaseData):
              (WebCore::JSDOMWindowBase::~JSDOMWindowBase):
              (WebCore::JSDOMWindowBase::clearHelperObjectProperties):
              * bindings/js/JSDOMWindowBase.h:
              Moved event listener tracking from JSDOMWindow to JSDOMGlobalObject.
      
              * bindings/js/JSEventListener.cpp:
              (WebCore::JSAbstractEventListener::handleEvent):
              (WebCore::JSUnprotectedEventListener::JSUnprotectedEventListener):
              (WebCore::JSUnprotectedEventListener::~JSUnprotectedEventListener):
              (WebCore::JSUnprotectedEventListener::globalObject):
              (WebCore::JSUnprotectedEventListener::clearGlobalObject):
              (WebCore::JSEventListener::JSEventListener):
              (WebCore::JSEventListener::~JSEventListener):
              (WebCore::JSEventListener::globalObject):
              (WebCore::JSEventListener::clearGlobalObject):
              (WebCore::JSLazyEventListener::JSLazyEventListener):
              (WebCore::JSLazyEventListener::parseCode):
              * bindings/js/JSEventListener.h:
              (WebCore::JSUnprotectedEventListener::create):
              (WebCore::JSEventListener::create):
              (WebCore::JSLazyEventListener::create):
              Changed to use JSDOMGlobalObject and ScriptExecutionContext.
      
              * bindings/js/JSMessagePortCustom.cpp:
              (WebCore::JSMessagePort::startConversation):
              (WebCore::JSMessagePort::addEventListener):
              (WebCore::JSMessagePort::removeEventListener):
              (WebCore::JSMessagePort::setOnmessage):
              (WebCore::JSMessagePort::setOnclose):
              Updated bindings to work with JSDOMGlobalObject. Next step is to make code generator emit
              such code, and stop using a custom implementation for JSMessagePort inline event handler
              getters and setters.
      
              * dom/Document.cpp:
              (WebCore::Document::virtualURL):
              * dom/Document.h:
              * dom/ScriptExecutionContext.h:
              Expose url() method on ScriptExecutionContext (necessary for compiling scripts in
              JSLazyEventListener).
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@38033 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      be35d511
    • cwzwarich@webkit.org's avatar
      2008-10-31 Cameron Zwarich <zwarich@apple.com> · efc1b115
      cwzwarich@webkit.org authored
              Not reviewed.
      
              Speculative wxWindows build fix.
      
              * webcore-base.bkl:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@38032 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      efc1b115
    • mrowe@apple.com's avatar
      Explicitly default to building for only the native architecture in debug and release builds. · 222bc73e
      mrowe@apple.com authored
      Reviewed by Jon Homeycutt.
      
      * Configurations/DebugRelease.xcconfig:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@38028 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      222bc73e
  5. 30 Oct, 2008 13 commits
    • cwzwarich@webkit.org's avatar
      2008-10-30 Cameron Zwarich <zwarich@apple.com> · a691b5af
      cwzwarich@webkit.org authored
              Rubber-stamped by Sam Weinig.
      
              Create a debugger directory in JavaScriptCore and move the relevant
              files to it.
      
              JavaScriptCore:
      
              * GNUmakefile.am:
              * JavaScriptCore.pri:
              * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
              * JavaScriptCore.xcodeproj/project.pbxproj:
              * VM/CodeBlock.cpp:
              * VM/CodeGenerator.h:
              * VM/Machine.cpp:
              * debugger: Added.
              * debugger/Debugger.cpp: Copied from kjs/debugger.cpp.
              * debugger/Debugger.h: Copied from kjs/debugger.h.
              * debugger/DebuggerCallFrame.cpp: Copied from kjs/DebuggerCallFrame.cpp.
              * debugger/DebuggerCallFrame.h: Copied from kjs/DebuggerCallFrame.h.
              * kjs/AllInOneFile.cpp:
              * kjs/DebuggerCallFrame.cpp: Removed.
              * kjs/DebuggerCallFrame.h: Removed.
              * kjs/Parser.cpp:
              * kjs/Parser.h:
              * kjs/debugger.cpp: Removed.
              * kjs/debugger.h: Removed.
              * kjs/interpreter.cpp:
              * kjs/nodes.cpp:
              * runtime/FunctionConstructor.cpp:
              * runtime/JSGlobalObject.cpp:
      
              WebCore:
      
              * ForwardingHeaders/debugger: Added.
              * ForwardingHeaders/debugger/Debugger.h: Copied from ForwardingHeaders/kjs/debugger.h.
              * ForwardingHeaders/debugger/DebuggerCallFrame.h: Copied from ForwardingHeaders/kjs/DebuggerCallFrame.h.
              * ForwardingHeaders/kjs/DebuggerCallFrame.h: Removed.
              * ForwardingHeaders/kjs/debugger.h: Removed.
              * WebCore.pro:
              * bindings/js/ScriptController.cpp:
              * inspector/JavaScriptCallFrame.cpp:
              * inspector/JavaScriptCallFrame.h:
              * inspector/JavaScriptDebugServer.cpp:
              * inspector/JavaScriptDebugServer.h:
      
              WebKit/mac:
      
              * ForwardingHeaders/debugger: Added.
              * ForwardingHeaders/debugger/DebuggerCallFrame.h: Copied from ForwardingHeaders/kjs/DebuggerCallFrame.h.
              * ForwardingHeaders/kjs/DebuggerCallFrame.h: Removed.
              * WebView/WebScriptDebugDelegate.mm:
              * WebView/WebScriptDebugger.h:
              * WebView/WebScriptDebugger.mm:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@38027 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a691b5af
    • timothy@apple.com's avatar
      Fix 2 Windows theme bugs: · 4ab9f65d
      timothy@apple.com authored
              1) Checkboxes marked readonly were rendered incorrectly
              2) If a button has focus and is pressed, it was rendered
                 as focused rather than pressed.
      
              https://bugs.webkit.org/show_bug.cgi?id=21859
      
              Reviewed by Dave Hyatt.
      
              * rendering/RenderThemeWin.cpp:
              (WebCore::RenderThemeWin::determineState):
              (WebCore::RenderThemeWin::determineButtonState):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@38025 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      4ab9f65d
    • timothy@apple.com's avatar
      Add parentheses to fix some gcc warnings. · e95b7576
      timothy@apple.com authored
      JavaScriptCore:
      
      2008-10-30  Benjamin K. Stuhl  <bks24@cornell.edu>
      
              gcc 4.3.3/linux-x86 generates "suggest parentheses around && within ||"
              warnings; add some parentheses to disambiguate things. No functional
              changes, so no tests.
      
              https://bugs.webkit.org/show_bug.cgi?id=21973
              Add parentheses to clean up some gcc warnings
      
              Reviewed by Dan Bernstein.
      
              * wtf/ASCIICType.h:
              (WTF::isASCIIAlphanumeric):
              (WTF::isASCIIHexDigit):
      
      WebCore:
      
      2008-10-30  Benjamin K. Stuhl  <bks24@cornell.edu>
      
              gcc 4.3.3/linux-x86 generates "suggest parentheses around && within ||"
              warnings; add some parentheses to disambiguate things. No functional
              changes, so no tests.
      
              https://bugs.webkit.org/show_bug.cgi?id=21973
              Add parentheses to clean up some gcc warnings
      
              Reviewed by Dan Bernstein.
      
              * platform/graphics/Font.h:
              (WebCore::Font::treatAsZeroWidthSpace):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@38024 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e95b7576
    • timothy@apple.com's avatar
      Added an explicit dependency on HashMap.h. It was getting pulled in via · ef64632c
      timothy@apple.com authored
              <kjs/identifier.h> in the case of JSC, causing errors for the Chromium port.
      
              Reviewed by Darin Adler.
      
              * platform/text/PlatformString.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@38023 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ef64632c
    • ddkilzer@apple.com's avatar
      2008-10-30 Greg Bolsinga <bolsinga@apple.com> · 5284082c
      ddkilzer@apple.com authored
              Reviewed by Sam Weinig
      
              https://bugs.webkit.org/show_bug.cgi?id=21967
      
              For some platforms the GeolocationService must be suspended and resumed.
      
              * page/Geolocation.cpp:
              (WebCore::Geolocation::clearWatch): now uses Geolocation::hasListeners()
              (WebCore::Geolocation::suspend): calls GeolocationService::suspend() if there are listeners
              (WebCore::Geolocation::resume): calls GeolocationService::resume() if there are listeners
              (WebCore::Geolocation::geolocationServicePositionChanged): now uses Geolocation::hasListeners()
              * page/Geolocation.h:
              (WebCore::Geolocation::hasListeners): Indicates of the Geolocation has interested GeolocationService listeners
              * platform/GeolocationService.h:
              (WebCore::GeolocationService::suspend): empty implementation
              (WebCore::GeolocationService::resume): empty implementation
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@38018 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5284082c
    • ddkilzer@apple.com's avatar
      2008-10-30 Greg Bolsinga <bolsinga@apple.com> · 14d6663d
      ddkilzer@apple.com authored
              Reviewed by Sam Weinig
      
              https://bugs.webkit.org/show_bug.cgi?id=21966
      
              The Geolocation spec was updated on 10/27/2008. This brings WebCore up to date.
              http://dev.w3.org/geo/api/spec-source.html
      
              * page/Geolocation.cpp:
              (WebCore::Geolocation::GeoNotifier::GeoNotifier): PositionOptions' timeout now unsigned
              * page/Geoposition.cpp: velocity is now called speed
              (WebCore::Geoposition::toString):
              * page/Geoposition.h: velocity is now called speed
              (WebCore::Geoposition::create):
              (WebCore::Geoposition::speed):
              (WebCore::Geoposition::Geoposition):
              * page/Geoposition.idl: velocity is now called speed
              * page/PositionOptions.h: timeout is now unsigned
              (WebCore::PositionOptions::create):
              (WebCore::PositionOptions::timeout):
              (WebCore::PositionOptions::setTimeout):
              (WebCore::PositionOptions::PositionOptions):
              * page/PositionOptions.idl: timeout is now unsigned long
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@38017 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      14d6663d
    • justin.garcia@apple.com's avatar
      WebCore: · 484cb6b6
      justin.garcia@apple.com authored
      2008-10-30  Justin Garcia  <justin.garcia@apple.com>
      
              Also handle preserved newlines.
      
              * editing/BreakBlockquoteCommand.cpp:
              (WebCore::BreakBlockquoteCommand::doApply):
      
      LayoutTests:
      
      2008-10-30  Justin Garcia  <justin.garcia@apple.com>
      
              Added another layout test for previous check-in.
      
              * editing/inserting/6104369-2-expected.txt: Added.
              * editing/inserting/6104369-2.html: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@38015 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      484cb6b6
    • justin.garcia@apple.com's avatar
      WebCore: · 8c6832c4
      justin.garcia@apple.com authored
      2008-10-30  Justin Garcia  <justin.garcia@apple.com>
      
              Reviewed by Beth Dakin.
      
              <rdar://problem/6104369> Hitting return at the end of a quoted line creates an extraneous quoted line
      
              * editing/BreakBlockquoteCommand.cpp:
              (WebCore::BreakBlockquoteCommand::doApply): 
              Don't store the endingSelection() in selection, just call endingSelection() in the few places it's 
              needed.  This function is cheap since it just returns a reference to a Selection instead of creating one.
              Don't store an affinity.  In the one place that it was used, isLastVisiblePositionInNode(VisiblePosition(pos, affinity), topBlockquote),
              we now use visiblePos (in order to avoid VisiblePosition creation).
              Set pos after we delete the current selection (if there is one), and be consistent about what we set 
              pos to.  Before, we upstream()ed it if there was a selection to delete and left it alone otherwise.  In fact...
              ...we need to use downstream() for pos so that when a caret is at the boundary between two nodes, pos is 
              in the first node that we want to move.  This fixes the bug, since it lets code that checks for the case 
              where the caret is between text and a br work correctly.
      
      LayoutTests:
      
      2008-10-30  Justin Garcia  <justin.garcia@apple.com>
      
              Reviewed by Beth Dakin.
              
              <rdar://problem/6104369> Hitting return at the end of a quoted line creates an extraneous quoted line
      
              * editing/inserting/6104369-expected.txt: Added.
              * editing/inserting/6104369.html: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@38014 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8c6832c4
    • darin@apple.com's avatar
      Fix mismerged change log. · f9f4f9a7
      darin@apple.com authored
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@38007 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f9f4f9a7
    • vestbo@webkit.org's avatar
      2008-10-30 Yael Aharon <yael.aharon@nokia.com> · d8876f1e
      vestbo@webkit.org authored
              Reviewed by Darin Adler.
      
              Fix the Qt build.
      
              https://bugs.webkit.org/show_bug.cgi?id=21969
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@38006 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d8876f1e
    • justin.garcia@apple.com's avatar
      2008-10-30 Justin Garcia <justin.garcia@apple.com> · 74f5c378
      justin.garcia@apple.com authored
              Reviewed by Darin Adler.
      
              More preparation for:
              <rdar://problem/6104369> Hitting return at the end of a quoted line creates an extraneous quoted line
      
              * editing/BreakBlockquoteCommand.cpp:
              (WebCore::BreakBlockquoteCommand::doApply): Added comments.  Don't need to use newStartNode.  If the 
              startNode needs to change, change it.  Afterwords, check to make sure that it hasn't left topBlockquote.  
              This is slightly stricter than before, where we just made sure that it still had a topBlockquote.  This 
              doesn't really fix a bug, since we can't really get into a situation where we move to a different 
              topBlockquote, but it simplifies the code.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@38004 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      74f5c378
    • alp@webkit.org's avatar
      2008-10-30 Dirk Schulze <vbs85@gmx.de> · 3d557520
      alp@webkit.org authored
              Reviewed by Alp Toker.
      
              https://bugs.webkit.org/show_bug.cgi?id=21883
              [CAIRO] globalAlpha has to be stored and restored
      
              Cairo's globalAlpha has to be stored and reloaded on calling
              save() and restore(). We use the power of GraphicsContextState for this.
      
              * platform/graphics/GraphicsContextPrivate.h:
              (WebCore::GraphicsContextState::GraphicsContextState):
              * platform/graphics/cairo/GraphicsContextCairo.cpp:
              (WebCore::GraphicsContext::fillPath):
              (WebCore::GraphicsContext::strokePath):
              (WebCore::GraphicsContext::setAlpha):
              (WebCore::GraphicsContext::getAlpha):
              * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
              (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@38001 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3d557520
    • ap@webkit.org's avatar
      Reviewed by Maciej Stachowiak. · 771c2654
      ap@webkit.org authored
              Rename "attachedToEventTargetNode" to "isInline".
      
              Inline (onXXX) attributes are used not just with event target nodes, but also with Window,
              XMLHttpRequest, MessagePort et al.
      
              Also renamed createHTMLEventHandler() (which was a leftover from earlier isHTMLEvent ->
              attachedToEventTargetNode rename made for SVG) to createInlineEventListener().
              And also renamed EventTargetNode, Document and Window "eventListenerForType" methods to
              "inlineEventListenerForType", as they work with inline listeners.
      
              * bindings/js/JSDOMApplicationCacheCustom.cpp:
              (WebCore::JSDOMApplicationCache::addEventListener):
              (WebCore::JSDOMApplicationCache::removeEventListener):
              * bindings/js/JSMessagePortCustom.cpp:
              (WebCore::JSMessagePort::setOnmessage):
              (WebCore::JSMessagePort::setOnclose):
              * bindings/js/JSXMLHttpRequestCustom.cpp:
              (WebCore::JSXMLHttpRequest::addEventListener):
              (WebCore::JSXMLHttpRequest::removeEventListener):
              * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
              (WebCore::JSXMLHttpRequestUpload::addEventListener):
              (WebCore::JSXMLHttpRequestUpload::removeEventListener):
              Pass a correct value for this argument - callers used to be confused, because they didn't
              consider themselves event target nodes. This doesn't affect behavior however, as the only
              difference between inline and non-inline event handlers is that the former treat
              "return false" as "event.preventDefault()", which is not important to any of these objects.
      
              * bindings/js/JSEventListener.cpp: (WebCore::JSLazyEventListener::parseCode):
              Assert that isInline is true instead of checking its value, as the constructor of this class
              always sets it to true.
      
              * bindings/js/JSDOMWindowBase.cpp:
              (WebCore::JSDOMWindowBase::~JSDOMWindowBase):
              (WebCore::JSDOMWindowBase::findJSEventListener):
              (WebCore::JSDOMWindowBase::findOrCreateJSEventListener):
              (WebCore::JSDOMWindowBase::findJSUnprotectedEventListener):
              (WebCore::JSDOMWindowBase::findOrCreateJSUnprotectedEventListener):
              (WebCore::JSDOMWindowBase::jsInlineEventListeners):
              (WebCore::JSDOMWindowBase::jsUnprotectedInlineEventListeners):
              * bindings/js/JSDOMWindowBase.h:
              * bindings/js/JSEventListener.cpp:
              (WebCore::JSAbstractEventListener::handleEvent):
              (WebCore::JSAbstractEventListener::isInline):
              (WebCore::JSUnprotectedEventListener::JSUnprotectedEventListener):
              (WebCore::JSUnprotectedEventListener::~JSUnprotectedEventListener):
              (WebCore::JSEventListener::JSEventListener):
              (WebCore::JSEventListener::~JSEventListener):
              (WebCore::JSLazyEventListener::parseCode):
              * bindings/js/JSEventListener.h:
              (WebCore::JSAbstractEventListener::JSAbstractEventListener):
              (WebCore::JSUnprotectedEventListener::create):
              (WebCore::JSEventListener::create):
              * bindings/js/ScriptController.cpp:
              (WebCore::ScriptController::createInlineEventHandler):
              * bindings/js/ScriptController.h:
              * dom/Document.cpp:
              (WebCore::Document::setWindowInlineEventListenerForType):
              (WebCore::Document::windowInlineEventListenerForType):
              (WebCore::Document::removeWindowInlineEventListenerForType):
              (WebCore::Document::createEventListener):
              (WebCore::Document::setWindowInlineEventListenerForTypeAndAttribute):
              * dom/Document.h:
              * dom/EventListener.h:
              (WebCore::EventListener::isInline):
              * dom/EventTargetNode.cpp:
              (WebCore::EventTargetNode::removeInlineEventListenerForType):
              (WebCore::EventTargetNode::setInlineEventListenerForType):
              (WebCore::EventTargetNode::setInlineEventListenerForTypeAndAttribute):
              (WebCore::EventTargetNode::inlineEventListenerForType):
              (WebCore::EventTargetNode::on*): (many methods)
              (WebCore::EventTargetNode::setOn*): (many methods)
              * dom/EventTargetNode.h:
              * editing/ReplaceSelectionCommand.cpp:
              (WebCore::ReplacementFragment::ReplacementFragment):
              * html/HTMLBodyElement.cpp:
              (WebCore::HTMLBodyElement::parseMappedAttribute):
              * html/HTMLButtonElement.cpp:
              (WebCore::HTMLButtonElement::parseMappedAttribute):
              * html/HTMLElement.cpp:
              (WebCore::HTMLElement::parseMappedAttribute):
              * html/HTMLFormElement.cpp:
              (WebCore::HTMLFormElement::parseMappedAttribute):
              * html/HTMLFrameElementBase.cpp:
              (WebCore::HTMLFrameElementBase::parseMappedAttribute):
              * html/HTMLFrameSetElement.cpp:
              (WebCore::HTMLFrameSetElement::parseMappedAttribute):
              * html/HTMLImageElement.cpp:
              (WebCore::HTMLImageElement::parseMappedAttribute):
              * html/HTMLInputElement.cpp:
              (WebCore::HTMLInputElement::parseMappedAttribute):
              * html/HTMLObjectElement.cpp:
              (WebCore::HTMLObjectElement::parseMappedAttribute):
              * html/HTMLScriptElement.cpp:
              (WebCore::HTMLScriptElement::parseMappedAttribute):
              * html/HTMLSelectElement.cpp:
              (WebCore::HTMLSelectElement::parseMappedAttribute):
              * html/HTMLTextAreaElement.cpp:
              (WebCore::HTMLTextAreaElement::parseMappedAttribute):
              * page/AccessibilityRenderObject.cpp:
              (WebCore::AccessibilityRenderObject::mouseButtonListener):
              * page/DOMWindow.cpp:
              (WebCore::DOMWindow::setInlineEventListenerForType):
              (WebCore::DOMWindow::inlineEventListenerForType):
              (WebCore::DOMWindow::on*): (many methods)
              (WebCore::DOMWindow::setOn*): (many methods)
              * page/DOMWindow.h:
              * svg/SVGElement.cpp:
              (WebCore::SVGElement::parseMappedAttribute):
              * svg/SVGElementInstance.cpp:
              (WebCore::SVGElementInstance::on*): (many methods)
              (WebCore::SVGElementInstance::setOn*): (many methods)
              * svg/SVGSVGElement.cpp:
              (WebCore::SVGSVGElement::parseMappedAttribute):
              Rename things, as described above.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37993 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      771c2654
  6. 29 Oct, 2008 10 commits
    • zecke@webkit.org's avatar
      2008-10-29 Gustavo Noronha Silva <gns@gnome.org> · bcca41db
      zecke@webkit.org authored
              Reviewed by Holger Freyther.
      
              Added all the files that need to be installed for the Inspector to
              work.
      
      WebCore/ChangeLog:
      2008-10-29  Gustavo Noronha Silva  <gns@gnome.org>
      
              Reviewed and slightly changed by Holger Freyther.
      
              Added all the files that need to be installed for the Inspector to
              work.
      
              * GNUmakefile.am: Invoke the shell to get the files.
      
      WebKit/gtk:
      2008-10-29  Gustavo Noronha Silva  <gns@gnome.org>
      
              Reviewed and slightly changed by Holger Freyther.
      
              Implemented a new WebKitWebInspector class to provide a GObject
              API for the Web Inspector. Also implemented InspectorClient.
      
              * WebCoreSupport/InspectorClientGtk.cpp:
              (WebKit::notifyWebViewDestroyed):
              (WebKit::InspectorClient::InspectorClient):
              (WebKit::InspectorClient::inspectorDestroyed):
              (WebKit::InspectorClient::webViewDestroyed):
              (WebKit::InspectorClient::createPage):
              (WebKit::InspectorClient::showWindow):
              (WebKit::InspectorClient::closeWindow):
              (WebKit::InspectorClient::attachWindow):
              (WebKit::InspectorClient::detachWindow):
              (WebKit::InspectorClient::inspectedURLChanged):
              * WebCoreSupport/InspectorClientGtk.h:
              * webkit/webkit.h:
              * webkit/webkit-marshal.list:
              * webkit/webkitdefines.h:
              * webkit/webkitprivate.h:
              * webkit/webkitwebinspector.cpp: Added.
              (_WebKitWebInspectorPrivate::webkit_inspect_web_view_request_handled):
              (_WebKitWebInspectorPrivate::webkit_web_inspector_class_init):
              (_WebKitWebInspectorPrivate::webkit_web_inspector_init):
              (_WebKitWebInspectorPrivate::webkit_web_inspector_finalize):
              (_WebKitWebInspectorPrivate::webkit_web_inspector_set_property):
              (_WebKitWebInspectorPrivate::webkit_web_inspector_get_property):
              (_WebKitWebInspectorPrivate::webkit_web_inspector_set_web_view):
              * webkit/webkitwebinspector.h: Added.
              * webkit/webkitwebsettings.cpp:
              (_WebKitWebSettingsPrivate::):
              (_WebKitWebSettingsPrivate::webkit_web_settings_class_init):
              (_WebKitWebSettingsPrivate::webkit_web_settings_set_property):
              (_WebKitWebSettingsPrivate::webkit_web_settings_get_property):
              (_WebKitWebSettingsPrivate::webkit_web_settings_copy):
              * webkit/webkitwebview.cpp:
              * webkit/webkitwebview.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37982 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      bcca41db
    • darin@chromium.org's avatar
      2008-10-29 Andrew Scherkus <scherkus@chromium.org> · de67541e
      darin@chromium.org authored
              Reviewed by Darin Adler
      
              Add MediaPlayerPrivateChromium to MediaPlayer
              https://bugs.webkit.org/show_bug.cgi?id=21930
      
              * platform/graphics/MediaPlayer.cpp:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37980 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      de67541e
    • justin.garcia@apple.com's avatar
      2008-10-29 Justin Garcia <justin.garcia@apple.com> · 8cba38d4
      justin.garcia@apple.com authored
              Reviewed by Darin Adler.
      
              Some preparation for:
              <rdar://problem/6104369> Hitting return at the end of a quoted line creates an extraneous quoted line
              
              Added an early return to avoid a level of if-nesting.  No other changes.  We probably don't
              need to rebalance whitespace before the early return but for now don't risk any change in behavior
              I'll revisit that later.
      
              * editing/BreakBlockquoteCommand.cpp:
              (WebCore::BreakBlockquoteCommand::doApply):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37979 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8cba38d4
    • kevino@webkit.org's avatar
      ce2e48a5
    • brettw@chromium.org's avatar
      95ee6813
    • timothy@apple.com's avatar
      Emit the WillExecuteStatement debugger hook before the "else" body when there... · dbc138a6
      timothy@apple.com authored
      Emit the WillExecuteStatement debugger hook before the "else" body when there is no block for the "else" body. This allows breakpoints on those statements in the Web Inspector.
      
      JavaScriptCore:
      
      2008-10-28  Timothy Hatcher  <timothy@apple.com>
      
              Emit the WillExecuteStatement debugger hook before the "else" body
              when there is no block for the "else" body. This allows breakpoints
              on those statements in the Web Inspector.
      
              https://bugs.webkit.org/show_bug.cgi?id=21944
      
              Reviewed by Maciej Stachowiak.
      
              * kjs/nodes.cpp:
              (JSC::IfElseNode::emitCode): Emit the WillExecuteStatement
              debugger hook before the else node if isn't a block.
      
      WebCore:
      
      2008-10-28  Timothy Hatcher  <timothy@apple.com>
      
              Add a manual test that checks breakpoints on a blockless body of
              an "else" statement.
      
              https://bugs.webkit.org/show_bug.cgi?id=21944
      
              Reviewed by Maciej Stachowiak.
      
              * manual-tests/inspector/debugger-pause-on-else-statements.html: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37972 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      dbc138a6
    • ap@webkit.org's avatar
      Reviewed by Darin Adler. · 7c52f886
      ap@webkit.org authored
              https://bugs.webkit.org/show_bug.cgi?id=21921
              MessagePort messages are dispatched to documents that are not fully active
      
              Covered by corrected fast/events/message-port-inactive-document.html
      
              * bindings/js/JSEventListener.cpp:
              (WebCore::JSAbstractEventListener::handleEvent): Don't dispatch messages to contexts
              that are not fully active.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37971 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7c52f886
    • ap@webkit.org's avatar
      Reviewed by Sam Weinig. · 6b4b687b
      ap@webkit.org authored
              https://bugs.webkit.org/show_bug.cgi?id=21922
              Expose MessagePort global constructor
      
              Covered by existing dumper tests.
      
              * dom/MessagePort.idl:
              * page/DOMWindow.idl:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37969 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6b4b687b
    • ap@webkit.org's avatar
      Reviewed by Darin Adler. · c78a2070
      ap@webkit.org authored
              https://bugs.webkit.org/show_bug.cgi?id=21924
              HashTable internal index is not always deleted
      
              * bindings/js/JSDOMBinding.cpp: (WebCore::DOMObjectHashTableMap::~DOMObjectHashTableMap):
              Call deleteTable for HashTables that are being deleted.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37968 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c78a2070
    • ap@webkit.org's avatar
      Reviewed by Darin Adler. · 3c120a80
      ap@webkit.org authored
              https://bugs.webkit.org/show_bug.cgi?id=21923
              Create an abstraction for script execution context
      
              * GNUmakefile.am:
              * WebCore.pro:
              * WebCore.vcproj/WebCore.vcproj:
              * WebCore.xcodeproj/project.pbxproj:
              * WebCoreSources.bkl:
              Added ScriptExecutionContext.{h,cpp}.
      
              * bindings/js/JSAudioConstructor.cpp:
              (WebCore::JSAudioConstructor::JSAudioConstructor):
              * bindings/js/JSAudioConstructor.h:
              * bindings/js/JSImageConstructor.cpp:
              (WebCore::JSImageConstructor::JSImageConstructor):
              * bindings/js/JSImageConstructor.h:
              * bindings/js/JSOptionConstructor.cpp:
              (WebCore::JSOptionConstructor::JSOptionConstructor):
              * bindings/js/JSOptionConstructor.h:
              * bindings/js/JSXMLHttpRequestConstructor.cpp:
              (WebCore::JSXMLHttpRequestConstructor::JSXMLHttpRequestConstructor):
              * bindings/js/JSXMLHttpRequestConstructor.h:
              Pass ScriptExecutionContext instead of Document to make getDOMConstructor() happy.
              Since these objects can only work within documents now, it is immediately converted back
              to Document.
      
              * bindings/js/JSMessageChannelConstructor.cpp:
              (WebCore::JSMessageChannelConstructor::JSMessageChannelConstructor):
              (WebCore::JSMessageChannelConstructor::construct):
              * bindings/js/JSMessageChannelConstructor.h:
              (WebCore::JSMessageChannelConstructor::scriptExecutionContext):
              MessageChannel needs to be supported in workers right away, so the constructor operates with
              it directly.
      
              * dom/ActiveDOMObject.cpp:
              (WebCore::ActiveDOMObject::ActiveDOMObject):
              (WebCore::ActiveDOMObject::~ActiveDOMObject):
              (WebCore::ActiveDOMObject::contextDestroyed):
              * dom/ActiveDOMObject.h:
              (WebCore::ActiveDOMObject::scriptExecutionContext):
              * bindings/js/JSDOMBinding.cpp:
              (WebCore::markActiveObjectsForContext):
              (WebCore::markCrossHeapDependentObjectsForContext):
              Use ScriptExecutionContext instead of Document, now that ActiveDOMObject and MessagePort
              tracking is handled by ScriptExecutionContext.
      
              * bindings/js/JSDOMBinding.h: (WebCore::getDOMPrototype): Moved to JSDOMGlobalObject.
      
              * bindings/js/JSDOMGlobalObject.h:
              (WebCore::getDOMConstructor): Moved to this file, as constructors live in JSDOMGlobalObject.
              Also, the two-argument version that used to be in JSDOMWindowBase.cpp need to be accessible
              to worker context implementation.
              (WebCore::scriptExecutionContext): Added a pure virtual method to access
              ScriptExecutionContext, implemented by subclasses.
      
              * bindings/js/JSDOMWindowBase.h:
              * bindings/js/JSDOMWindowBase.cpp: (WebCore::JSDOMWindowBase::scriptExecutionContext):
              Implement by returning the associated document. Note that this method currently gives bogus
              results after navigation - DOMWindow Frame reference is not zeroed out, so we get a document
              that is currently in the frame, not the one associated with this window.
      
              * bindings/js/JSDedicatedWorkerConstructor.cpp: Removed unnecessary include of DOMWindow.h.
      
              * bindings/js/JSDocumentCustom.cpp: (WebCore::JSDocument::mark):
              Call markActiveObjectsForContext() by its new name.
      
              * dom/DedicatedWorker.cpp:
              (WebCore::DedicatedWorker::DedicatedWorker):
              (WebCore::DedicatedWorker::document):
              * dom/DedicatedWorker.h:
              * xml/XMLHttpRequest.cpp:
              (WebCore::XMLHttpRequest::document):
              * xml/XMLHttpRequest.h:
              Added a document() function that upcasts ScriptExecutionContext, as these objects only work
              within documents currently (at least for XMLHttpRequest, this will change soon though).
      
              * dom/Document.cpp:
              (WebCore::Document::Document):
              (WebCore::Document::~Document):
              Moved active object and MessagePort tracking up to ScriptExecutionContext, to share code
              with workers.
              
              * dom/Document.h:
              (WebCore::Document::isDocument):
              (WebCore::Document::refScriptExecutionContext):
              (WebCore::Document::derefScriptExecutionContext):
              Inherit from ScriptExecutionContext.
      
              * dom/MessageChannel.cpp:
              (WebCore::MessageChannel::MessageChannel):
              * dom/MessageChannel.h:
              (WebCore::MessageChannel::create):
              Use ScriptExecutionContext instead of Document.
      
              * dom/MessagePort.cpp:
              (WebCore::CloseMessagePortTimer::CloseMessagePortTimer): Make m_port a RefPtr, because
              MessagePort doesn't ref() itself when posting this event any more (this is a fix for an
              unrelated issue that was causing random crashes in layout tests).
              (WebCore::MessagePort::MessagePort):
              (WebCore::MessagePort::~MessagePort):
              (WebCore::MessagePort::associatedFrame):
              (WebCore::MessagePort::clone):
              (WebCore::MessagePort::postMessage):
              (WebCore::MessagePort::startConversation):
              (WebCore::MessagePort::start):
              (WebCore::MessagePort::contextDestroyed):
              (WebCore::MessagePort::dispatchMessages):
              * dom/MessagePort.h:
              (WebCore::MessagePort::create):
              (WebCore::MessagePort::scriptExecutionContext):
              Use ScriptExecutionContext instead of Document. This is a step toward making MessagePort
              work in worker contexts - we need to also make some its method thread safe for cross-thread
              messaging, and make event dispatching thread safe.
      
              * dom/ScriptExecutionContext.cpp: Added.
              * dom/ScriptExecutionContext.h: Added.
              ActiveDOMObject and MessagePort tracking is moved from Document.
              It is debatable whether ScriptExecutionContext should be a parent of Document or DOMWindow,
              but as I'm just moving Document code, and it is Document that is the main context object
              in our implementation currently.
              Changing ScriptExecutionContext to be a parent of DOMWindow causes a number of bugs that
              seem non-trivial to fix, and isn't really a part of this task.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37966 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3c120a80
  7. 28 Oct, 2008 3 commits