HTTP tests should use testRunner instead of layoutTestController
https://bugs.webkit.org/show_bug.cgi?id=88969

Reviewed by Darin Adler.

* http/tests/appcache/:
* http/tests/cache/cancel-during-failure-crash.html:
* http/tests/cache/cancel-during-revalidation-succeeded.html:
* http/tests/cache/history-only-cached-subresource-loads-max-age-https.html:
* http/tests/cache/history-only-cached-subresource-loads.html:
* http/tests/cache/loaded-from-cache-after-reload-within-iframe.html:
* http/tests/cache/loaded-from-cache-after-reload.html:
* http/tests/cache/post-redirect-get.php:
* http/tests/cache/post-with-cached-subresources.php:
* http/tests/cache/resources/stopped-revalidation-result.html:
* http/tests/cache/resources/subresource-test.js:
(nextTest):
* http/tests/cache/stopped-revalidation.html:
* http/tests/cache/subresource-failover-to-network.html:
* http/tests/cache/subresource-fragment-identifier.html:
* http/tests/cache/subresource-multiple-instances.html:
* http/tests/cache/xhr-body.html:
* http/tests/cache/zero-length-xhr.html:
* http/tests/canvas/philip/tests.js:
(_addTest.endTest):
(_addTest.window.onload):
(_addTest):
* http/tests/canvas/webgl/origin-clean-conformance.html:
* http/tests/cookies/resources/cookies-test-pre.js:
* http/tests/cookies/resources/resetCookies.js:
(resetCookies):
* http/tests/cookies/resources/setArraycookies-result.php:
* http/tests/cookies/resources/setUtf8Cookies-result.php:
* http/tests/cookies/resources/third-party-cookie-relaxing-iframe.html:
* http/tests/cookies/third-party-cookie-relaxing.html:
* http/tests/css/cross-fade-reload.html:
* http/tests/css/css-imports-redirect-cycle.html:
* http/tests/css/font-face-src-loading.html:
* http/tests/css/resources/link-css-disabled-value-with-slow-loading-sheet-in-error.js:
* http/tests/css/resources/link-css-disabled-value-with-slow-loading-sheet.js:
* http/tests/css/resources/request-logging.js:
(startTest):
(endTest):
* http/tests/download/basic-ascii.html:
* http/tests/download/default-encoding.html:
* http/tests/download/inherited-encoding-form-submission-result.html:
* http/tests/download/inherited-encoding.html:
* http/tests/download/literal-utf-8.html:
* http/tests/eventsource/eventsource-bad-mime-type.html:
* http/tests/eventsource/eventsource-content-type-charset.html:
* http/tests/eventsource/eventsource-eof.html:
* http/tests/eventsource/eventsource-parse-event-stream.html:
* http/tests/eventsource/eventsource-reconnect-during-navigate-crash.html:
* http/tests/eventsource/eventsource-reconnect.html:
* http/tests/eventsource/eventsource-status-code-states.html:
* http/tests/eventsource/existent-eventsource-status-error-iframe-crash.html:
* http/tests/eventsource/non-existent-eventsource-status-error-iframe-crash.html:
* http/tests/eventsource/resources/wait-then-notify-done.php:
* http/tests/eventsource/workers/eventsource-simple.html:
* http/tests/fileapi/create-blob-url-from-data-url.html:
* http/tests/filesystem/no-cache-filesystem-url.html:
* http/tests/globalhistory/history-delegate-basic-302-redirect.html:
* http/tests/globalhistory/history-delegate-basic-refresh-redirect.html:
* http/tests/globalhistory/history-delegate-basic-title.html:
* http/tests/globalhistory/history-delegate-basic-visited-links.html:
* http/tests/history/:
* http/tests/incremental/frame-focus-before-load.html:
* http/tests/incremental/partial-jpeg.html:
* http/tests/incremental/pause-in-script-element.pl:
* http/tests/incremental/slow-utf8-css.html:
* http/tests/incremental/slow-utf8-html.pl:
* http/tests/incremental/split-hex-entities.pl:
* http/tests/inspector-enabled/console-clear-arguments-on-frame-navigation.html:
* http/tests/inspector-enabled/console-clear-arguments-on-frame-remove.html:
* http/tests/inspector-enabled/console-log-before-frame-navigation.html:
* http/tests/inspector-enabled/contentSecurityPolicy-blocks-setInterval.html:
* http/tests/inspector-enabled/contentSecurityPolicy-blocks-setTimeout.html:
* http/tests/inspector-enabled/database-open.html:
* http/tests/inspector-enabled/dedicated-workers-list.html:
* http/tests/inspector-enabled/document-write.html:
* http/tests/inspector-enabled/dom-storage-open.html:
* http/tests/inspector-enabled/injected-script-discard.html:
* http/tests/inspector-enabled/resources/console-clear-arguments-iframe.html:
* http/tests/inspector/console-resource-errors.html:
* http/tests/inspector/console-websocket-error.html:
* http/tests/inspector/indexeddb/resources/without-indexed-db.html:
* http/tests/inspector/inspector-test.js:
* http/tests/inspector/network/ping.html:
* http/tests/inspector/resource-tree/resources/script-initial.js:
(foo):
* http/tests/inspector/resource-tree/resources/script-navigated.js:
(foo):
* http/tests/inspector/web-socket-frame-error.html:
* http/tests/inspector/web-socket-frame.html:
* http/tests/loading/:
* http/tests/local/absolute-url-strip-whitespace.html:
* http/tests/local/blob/script-tests/send-hybrid-blob.js:
(runTests):
* http/tests/local/drag-over-remote-content.html:
* http/tests/local/fail.css:
(#pass):
* http/tests/local/formdata/send-form-data-constructed-from-form.html:
* http/tests/local/link-stylesheet-load-order-preload.html:
* http/tests/local/link-stylesheet-load-order.html:
* http/tests/local/link-stylesheet-preferred.html:
* http/tests/local/style-access-before-stylesheet-loaded.html:
* http/tests/local/stylesheet-and-script-load-order-http.html:
* http/tests/local/stylesheet-and-script-load-order-media-print.html:
* http/tests/local/stylesheet-and-script-load-order.html:
* http/tests/media/reload-after-dialog.html:
* http/tests/media/resources/test.txt:
* http/tests/media/video-buffered-range-contains-currentTime.html:
* http/tests/media/video-cancel-load.html:
* http/tests/media/video-cookie.html:
* http/tests/media/video-error-abort.html:
* http/tests/messaging/cross-domain-message-event-dispatch.html:
* http/tests/messaging/cross-domain-message-send.html:
* http/tests/mime/quoted-charset.php:
* http/tests/mime/resources/uppercase-mime-type.php:
* http/tests/mime/standard-mode-does-not-load-stylesheet-with-text-plain-and-css-extension.html:
* http/tests/mime/standard-mode-does-not-load-stylesheet-with-text-plain.html:
* http/tests/mime/standard-mode-loads-stylesheet-with-charset-and-css-extension.html:
* http/tests/mime/standard-mode-loads-stylesheet-with-charset.html:
* http/tests/mime/standard-mode-loads-stylesheet-with-empty-content-type.html:
* http/tests/mime/standard-mode-loads-stylesheet-with-text-css-and-invalid-type.html:
* http/tests/mime/uppercase-mime-type.html:
* http/tests/misc/:
* http/tests/websocket/tests/:
* http/tests/workers/resources/worker-redirect.js:
(runNextTest):
* http/tests/workers/resources/worker-util.js:
(waitUntilThreadCountMatches.return):
(waitUntilThreadCountMatches):
(done):
* http/tests/workers/shared-worker-importScripts.html:
* http/tests/workers/shared-worker-invalid-url.html:
* http/tests/workers/terminate-during-sync-operation.html:
* http/tests/workers/text-encoding.html:
* http/tests/workers/worker-document-domain-security.html:
* http/tests/workers/worker-importScripts.html:
* http/tests/workers/worker-importScriptsOnError.html:
* http/tests/workers/worker-invalid-url.html:
* http/tests/workers/worker-workerScriptNotThere.html:
* http/tests/xmlhttprequest/:
* http/tests/xmlviewer/dumpAsText/frames.html:
* http/tests/xmlviewer/dumpAsText/xhtml-tag.xml:
* http/tests/xmlviewer/extensions-api.html:
* platform/chromium-win/http/tests/websocket/tests/hixie76/bad-sub-protocol-control-chars-expected.txt:
* platform/chromium/http/tests/misc/execute-and-return-value.html:
* platform/chromium/http/tests/misc/selectionAsMarkup.html:
* platform/chromium/http/tests/permissionclient/image-permissions.html:
* platform/chromium/http/tests/security/aboutBlank/xss-DENIED-navigate-opener-document-write-expected.txt:
* platform/chromium/http/tests/security/aboutBlank/xss-DENIED-navigate-opener-javascript-url-expected.txt:
* platform/chromium/http/tests/security/aboutBlank/xss-DENIED-set-opener-expected.txt:
* platform/chromium/http/tests/security/dataURL/xss-DENIED-from-data-url-in-foreign-domain-subframe-expected.txt:
* platform/chromium/http/tests/security/dataURL/xss-DENIED-from-data-url-in-foreign-domain-window-open-expected.txt:
* platform/chromium/http/tests/security/dataURL/xss-DENIED-from-data-url-sub-frame-2-level-expected.txt:
* platform/chromium/http/tests/security/dataURL/xss-DENIED-from-data-url-sub-frame-expected.txt:
* platform/chromium/http/tests/security/dataURL/xss-DENIED-from-data-url-sub-frame-to-data-url-sub-frame-expected.txt:
* platform/chromium/http/tests/security/dataURL/xss-DENIED-from-data-url-to-data-url-expected.txt:
* platform/chromium/http/tests/security/dataURL/xss-DENIED-from-javascript-url-window-open-expected.txt:
* platform/chromium/http/tests/security/dataURL/xss-DENIED-to-data-url-from-data-url-expected.txt:
* platform/chromium/http/tests/security/dataURL/xss-DENIED-to-data-url-in-foreign-domain-subframe-expected.txt:
* platform/chromium/http/tests/security/dataURL/xss-DENIED-to-data-url-in-foreign-domain-subframe-location-change-expected.txt:
* platform/chromium/http/tests/security/dataURL/xss-DENIED-to-data-url-in-foreign-domain-window-open-expected.txt:
* platform/chromium/http/tests/security/dataURL/xss-DENIED-to-data-url-sub-frame-2-level-expected.txt:
* platform/chromium/http/tests/security/dataURL/xss-DENIED-to-data-url-window-open-expected.txt:
* platform/chromium/http/tests/security/mixedContent/insecure-iframe-in-main-frame-allowed.html:
* platform/chromium/http/tests/security/mixedContent/insecure-iframe-in-main-frame-blocked.html:
* platform/chromium/http/tests/security/mixedContent/insecure-image-in-main-frame-allowed.html:
* platform/chromium/http/tests/security/mixedContent/insecure-image-in-main-frame-blocked.html:
* platform/chromium/http/tests/security/mixedContent/insecure-script-in-main-frame-allowed.html:
* platform/chromium/http/tests/security/mixedContent/insecure-script-in-main-frame-blocked.html:
* platform/chromium/http/tests/security/window-named-proto-expected.txt:
* platform/qt/http/tests/cookies/strict-third-party-cookie-blocking.html:
* platform/qt/http/tests/security/aboutBlank/xss-DENIED-navigate-opener-document-write-expected.txt:
* platform/qt/http/tests/security/aboutBlank/xss-DENIED-navigate-opener-javascript-url-expected.txt:
* platform/qt/http/tests/security/aboutBlank/xss-DENIED-set-opener-expected.txt:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@120167 268f45cc-cd09-0410-ab3c-d52691b4dbfc
REGRESSION(r118098): <content> element does not render distributed children when cloned from another document
https://bugs.webkit.org/show_bug.cgi?id=88148

Source/WebCore:

Reviewed by Dimitri Glazkov.

The shadow DOM availability was decided through FrameLoaderClient.
But there are documents which don't have any associated frames, in
which any shadow DOM related elements cannot be constructed.  That
resulsted the regression.

This change introduces a Page-based client called
ContextFeaturesClient which takes the role from FrameLoaderClient
to decide the feature availability, and ContextFeatures which is a
proxy of ContextFeaturesClient.  ContextEnabledFeatures is is
replaced with ContextFeatures.

Each ContextFeatures object is owned by a Page, and is attached to
each Document in the page even if the page itself has no referenct
to Frames or Pages. With ContextFeatures, each Document can decide
the feature availability even if it cannot reach Page or Frame.

On RefCountedSupplement: Document instance can live longer than a
Page where it is shwon. This means that ContextFeatures instance
needs to survive after owner Page destruction because it's
referenced from possibly surviving Documents. RefCountedSupplement
is introduced to cover this scenario: It allows supplement classes
to live after Page's destruction.

RefCountedSupplement::hostDestroyed() is notified when the hosting
page is gone. ContextFeatures clears its reference to the client
using this notification.

Test: fast/dom/shadow/elements-in-frameless-document.html

* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateImplementation):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::determineScope):
* dom/ContextFeatures.cpp: Added.
(WebCore):
(WebCore::ContextFeaturesClient::empty):
(WebCore::ContextFeatures::supplementName):
(WebCore::ContextFeatures::defaultSwitch):
(WebCore::ContextFeatures::shadowDOMEnabled):
(WebCore::ContextFeatures::styleScopedEnabled):
(WebCore::ContextFeatures::pagePopupEnabled):
(WebCore::provideContextFeaturesTo):
(WebCore::provideContextFeaturesToDocumentFrom):
* dom/ContextFeatures.h: Added.
(WebCore):
(ContextFeatures):
(WebCore::ContextFeatures::ContextFeatures):
(WebCore::ContextFeatures::hostDestroyed):
(ContextFeaturesClient):
(WebCore::ContextFeaturesClient::~ContextFeaturesClient):
(WebCore::ContextFeaturesClient::isEnabled):
(WebCore::ContextFeatures::create):
(WebCore::ContextFeatures::isEnabled):
* dom/DOMAllInOne.cpp:
* dom/DOMImplementation.cpp:
(WebCore::DOMImplementation::createDocument):
(WebCore::DOMImplementation::createHTMLDocument):
* dom/Document.h:
(WebCore::Document::contextFeatures):
* dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::setContextFeatures):
* dom/Position.cpp:
(WebCore::Position::Position):
(WebCore::Position::findParent):
* dom/TreeScope.cpp:
(WebCore::TreeScope::getSelection):
* dom/make_names.pl:
(printConstructorInterior):
(printFactoryCppFile):
(printWrapperFunctions):
(printWrapperFactoryCppFile):
* editing/markup.cpp:
(WebCore::createFragmentFromMarkupWithContext):
* html/HTMLStyleElement.cpp:
(WebCore::HTMLStyleElement::registerWithScopingNode):
(WebCore::HTMLStyleElement::unregisterWithScopingNode):
* html/shadow/HTMLContentElement.cpp:
(WebCore::contentTagName):
* inspector/DOMPatchSupport.cpp:
(WebCore::DOMPatchSupport::patchDocument):
* loader/FrameLoaderClient.h:
* platform/RefCountedSupplement.h: Copied from Source/WebCore/platform/Supplementable.h.
(WebCore):
(RefCountedSupplement):
(WebCore::RefCountedSupplement::hostDestroyed):
(Wrapper):
(WebCore::RefCountedSupplement::Wrapper::Wrapper):
(WebCore::RefCountedSupplement::Wrapper::~Wrapper):
(WebCore::RefCountedSupplement::Wrapper::wrapped):
(WebCore::RefCountedSupplement::provideTo):
(WebCore::RefCountedSupplement::from):
* platform/Supplementable.h:
(WebCore::Supplement::isRefCountedWrapper):
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::responseXML):

Source/WebKit/chromium:

Reviewed by Dimitri Glazkov.

- Added ContextFeaturesClientImpl which implements WebCore::ContextFeaturesClient.
- Replaced PagePopupFrameLoaderClient with PagePopupFeaturesClient.

* WebKit.gyp:
* public/WebPermissionClient.h:
(WebKit):
(WebKit::WebPermissionClient::allowWebComponents):
* src/ContextFeaturesClientImpl.cpp: Renamed from Source/WebCore/bindings/generic/ContextEnabledFeatures.cpp.
(WebKit):
(WebKit::ContextFeaturesClientImpl::isEnabled):
* src/ContextFeaturesClientImpl.h: Renamed from Source/WebCore/bindings/generic/ContextEnabledFeatures.h.
(WebKit):
(ContextFeaturesClientImpl):
(WebKit::ContextFeaturesClientImpl::ContextFeaturesClientImpl):
(WebKit::ContextFeaturesClientImpl::setPermissionClient):
* src/FrameLoaderClientImpl.cpp:
* src/FrameLoaderClientImpl.h:
(FrameLoaderClientImpl):
* src/WebPagePopupImpl.cpp:
(PagePopupFeaturesClient):
(WebKit::PagePopupFeaturesClient::isEnabled):
(WebKit):
(WebKit::WebPagePopupImpl::initPage):
* src/WebViewImpl.cpp:
(WebKit::WebViewImpl::setPermissionClient):
(WebKit::WebViewImpl::WebViewImpl):
* src/WebViewImpl.h:
(WebKit):

LayoutTests:

Reviewed by Dimitri Glazkov.

* fast/dom/shadow/elements-in-frameless-document-expected.txt: Added.
* fast/dom/shadow/elements-in-frameless-document.html: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@120168 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, fixing English nits suggested by review for r120165.

* fileapi/Blob.cpp:
(WebCore::Blob::webkitSlice):
* fileapi/Blob.h:
(Blob):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@120169 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Qt] Unreviewed gardening.

Skip svg/as-image/svg-nested.html which is timeout only on Qt-4.8.

* platform/qt-4.8/Skipped: skip svg/as-image/svg-nested.html
* platform/qt/TestExpectations: removed the slow marker from this test

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@120170 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Change the styling of the Chromium video controls.
https://bugs.webkit.org/show_bug.cgi?id=88297

Patch by Silvia Pfeiffer <silviapf@chromium.org> on 2012-06-13
Reviewed by Eric Carlson.

No new tests, final patch will contain the rebaselined tests.

The Chrome video controls are receiving a visual update. This patch includes CSS changes,
the removal of the now no longer needed controls background div, and the introduction of
new images for the buttons.

* css/mediaControlsChromium.css:
(audio):
Adjust height of audio controls.
(::-webkit-media-controls):
Use flexbox on media controls shadow DOM.
(audio::-webkit-media-controls-enclosure, video::-webkit-media-controls-enclosure):
Adjust height, max-width, text-indent and box-sizing, and reset padding to 0.
(video::-webkit-media-controls-enclosure):
Use 5px padding only for video controls and adjust height accordingly.
(audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel):
Use flexbox on panel, adjust bottom alignment, height, background color and border radius.
(audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button):
Display buttons inline with fixed width and height, vertically centered, no padding and
6px space to next controls element (this will be 15px incl the space in the image).
(audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button):
Display buttons inline with fixed width and height, vertically centered, no padding and
9px space to next controls element (this will be 15px incl the space in the image).
(audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
Display text as block, without broder, adjusted height, font-family, font-size and 9px space
to next controls element (this will be 15px incl the space in the image).
(audio::-webkit-media-controls-timeline, video::-webkit-media-controls-timeline):
Adjust height, padding, background-color, min-wdith and 15px space to next controls element.
(audio::-webkit-media-controls-volume-slider, video::-webkit-media-controls-volume-slider):
Adjust height, max- and min-width, background-color and 15px space to next controls element.
* html/shadow/MediaControlRootElementChromium.cpp:
(WebCore::MediaControlRootElementChromium::MediaControlRootElementChromium):
Remove timeline container, which is not necessary any longer because of the use of flexbox.
(WebCore::MediaControlRootElementChromium::create):
Remove timeline container, which is not necessary any longer because of the use of flexbox.
(WebCore::MediaControlRootElementChromium::setMediaController):
Remove timeline container, which is not necessary any longer because of the use of flexbox.
(WebCore::MediaControlRootElementChromium::reset):
Show the timeline instead of the timeline container when resetting.
(WebCore::MediaControlRootElementChromium::reportedError):
Hide the timeline instead of the timeline container when running into an error.
* rendering/RenderMediaControlsChromium.cpp:
(WebCore::paintMediaMuteButton):
Introduce new image resources for the mute button and adjust it based on volume levels.
(WebCore::paintMediaPlayButton):
Introduce new image resources for the play button.
(WebCore::getMediaSliderThumb):
Introduce new image resources for the position slider thumb.
(WebCore::paintMediaVolumeSliderThumb):
Introduce new image resources for the volume slider thumb.
Remove timeline container rendering.
(WebCore::RenderMediaControlsChromium::paintMediaControlsPart):
Add timeline container painting to the "not reached" elements.
(WebCore):
Provide size settings for the position and volume sliders.
(WebCore::RenderMediaControlsChromium::adjustMediaSliderThumbSize):
Calculate correct width and height settings for the new image resources of the position and volume
slider thumbs.
* rendering/RenderThemeChromiumMac.h:
(RenderThemeChromiumMac):
Remove timeline container rendering (i.e. the media controls background).
* rendering/RenderThemeChromiumMac.mm:
Remove timeline container rendering (i.e. the media controls background).
* rendering/RenderThemeChromiumSkia.cpp:
Remove timeline container rendering (i.e. the media controls background).
* rendering/RenderThemeChromiumSkia.h:
(RenderThemeChromiumSkia):
Remove timeline container rendering (i.e. the media controls background).

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@120171 268f45cc-cd09-0410-ab3c-d52691b4dbfc
DFG should be able to set watchpoints on global variables
https://bugs.webkit.org/show_bug.cgi?id=88692

Source/JavaScriptCore: 

Reviewed by Geoffrey Garen.
        
This implements global variable constant folding by allowing the optimizing
compiler to set a "watchpoint" on globals that it wishes to constant fold.
If the watchpoint fires, then an OSR exit is forced by overwriting the
machine code that the optimizing compiler generated with a jump.
        
As such, this patch is adding quite a bit of stuff:
        
- Jump replacement on those hardware targets supported by the optimizing
  JIT. It is now possible to patch in a jump instruction over any recorded
  watchpoint label. The jump must be "local" in the sense that it must be
  within the range of the largest jump distance supported by a one
  instruction jump.
          
- WatchpointSets and Watchpoints. A Watchpoint is a doubly-linked list node
  that records the location where a jump must be inserted and the
  destination to which it should jump. Watchpoints can be added to a
  WatchpointSet. The WatchpointSet can be fired all at once, which plants
  all jumps. WatchpointSet also remembers if it had ever been invalidated,
  which allows for monotonicity: we typically don't want to optimize using
  watchpoints on something for which watchpoints had previously fired. The
  act of notifying a WatchpointSet has a trivial fast path in case no
  Watchpoints are registered (one-byte load+branch).
        
- SpeculativeJIT::speculationWatchpoint(). It's like speculationCheck(),
  except that you don't have to emit branches. But, you need to know what
  WatchpointSet to add the resulting Watchpoint to. Not everything that
  you could write a speculationCheck() for will have a WatchpointSet that
  would get notified if the condition you were speculating against became
  invalid.
          
- SymbolTableEntry now has the ability to refer to a WatchpointSet. It can
  do so without incurring any space overhead for those entries that don't
  have WatchpointSets.
          
- The bytecode generator infers all global function variables to be
  watchable, and makes all stores perform the WatchpointSet's write check,
  and marks all loads as being potentially watchable (i.e. you can compile
  them to a watchpoint and a constant).
        
Put together, this allows for fully sleazy inlining of calls to globally
declared functions. The inline prologue will no longer contain the load of
the function, or any checks of the function you're calling. I.e. it's
pretty much like the kind of inlining you would see in Java or C++.
Furthermore, the watchpointing functionality is built to be fairly general,
and should allow setting watchpoints on all sorts of interesting things
in the future.
        
The sleazy inlining means that we will now sometimes inline in code paths
that have never executed. Previously, to inline we would have either had
to have executed the call (to read the call's inline cache) or have
executed the method check (to read the method check's inline cache). Now,
we might inline when the callee is a watched global variable. This
revealed some humorous bugs. First, constant folding disagreed with CFA
over what kinds of operations can clobber (example: code path A is dead
but stores a String into variable X, all other code paths store 0 into
X, and then you do CompareEq(X, 0) - CFA will say that this is a non-
clobbering constant, but constant folding thought it was clobbering
because it saw the String prediction). Second, inlining would crash if
the inline callee had not been compiled. This patch fixes both bugs,
since otherwise run-javascriptcore-tests would report regressions.

* CMakeLists.txt:
* GNUmakefile.list.am:
* JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
* JavaScriptCore.xcodeproj/project.pbxproj:
* Target.pri:
* assembler/ARMv7Assembler.h:
(ARMv7Assembler):
(JSC::ARMv7Assembler::ARMv7Assembler):
(JSC::ARMv7Assembler::labelForWatchpoint):
(JSC::ARMv7Assembler::label):
(JSC::ARMv7Assembler::replaceWithJump):
(JSC::ARMv7Assembler::maxJumpReplacementSize):
* assembler/AbstractMacroAssembler.h:
(JSC):
(AbstractMacroAssembler):
(Label):
(JSC::AbstractMacroAssembler::watchpointLabel):
* assembler/AssemblerBuffer.h:
* assembler/MacroAssemblerARM.h:
(JSC::MacroAssemblerARM::replaceWithJump):
(MacroAssemblerARM):
(JSC::MacroAssemblerARM::maxJumpReplacementSize):
* assembler/MacroAssemblerARMv7.h:
(MacroAssemblerARMv7):
(JSC::MacroAssemblerARMv7::replaceWithJump):
(JSC::MacroAssemblerARMv7::maxJumpReplacementSize):
(JSC::MacroAssemblerARMv7::branchTest8):
(JSC::MacroAssemblerARMv7::jump):
(JSC::MacroAssemblerARMv7::makeBranch):
* assembler/MacroAssemblerMIPS.h:
(JSC::MacroAssemblerMIPS::replaceWithJump):
(MacroAssemblerMIPS):
(JSC::MacroAssemblerMIPS::maxJumpReplacementSize):
* assembler/MacroAssemblerSH4.h:
(JSC::MacroAssemblerSH4::replaceWithJump):
(MacroAssemblerSH4):
(JSC::MacroAssemblerSH4::maxJumpReplacementSize):
* assembler/MacroAssemblerX86.h:
(MacroAssemblerX86):
(JSC::MacroAssemblerX86::branchTest8):
* assembler/MacroAssemblerX86Common.h:
(JSC::MacroAssemblerX86Common::replaceWithJump):
(MacroAssemblerX86Common):
(JSC::MacroAssemblerX86Common::maxJumpReplacementSize):
* assembler/MacroAssemblerX86_64.h:
(MacroAssemblerX86_64):
(JSC::MacroAssemblerX86_64::branchTest8):
* assembler/X86Assembler.h:
(JSC::X86Assembler::X86Assembler):
(X86Assembler):
(JSC::X86Assembler::cmpb_im):
(JSC::X86Assembler::testb_im):
(JSC::X86Assembler::labelForWatchpoint):
(JSC::X86Assembler::label):
(JSC::X86Assembler::replaceWithJump):
(JSC::X86Assembler::maxJumpReplacementSize):
(JSC::X86Assembler::X86InstructionFormatter::memoryModRM):
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::dump):
* bytecode/CodeBlock.h:
(JSC::CodeBlock::appendOSRExit):
(JSC::CodeBlock::appendSpeculationRecovery):
(CodeBlock):
(JSC::CodeBlock::appendWatchpoint):
(JSC::CodeBlock::numberOfWatchpoints):
(JSC::CodeBlock::watchpoint):
(DFGData):
* bytecode/DFGExitProfile.h:
(JSC::DFG::exitKindToString):
(JSC::DFG::exitKindIsCountable):
* bytecode/Instruction.h:
(Instruction):
(JSC::Instruction::Instruction):
* bytecode/Opcode.h:
(JSC):
(JSC::padOpcodeName):
* bytecode/Watchpoint.cpp: Added.
(JSC):
(JSC::Watchpoint::~Watchpoint):
(JSC::Watchpoint::correctLabels):
(JSC::Watchpoint::fire):
(JSC::WatchpointSet::WatchpointSet):
(JSC::WatchpointSet::~WatchpointSet):
(JSC::WatchpointSet::add):
(JSC::WatchpointSet::notifyWriteSlow):
(JSC::WatchpointSet::fireAllWatchpoints):
* bytecode/Watchpoint.h: Added.
(JSC):
(Watchpoint):
(JSC::Watchpoint::Watchpoint):
(JSC::Watchpoint::setDestination):
(WatchpointSet):
(JSC::WatchpointSet::isStillValid):
(JSC::WatchpointSet::hasBeenInvalidated):
(JSC::WatchpointSet::startWatching):
(JSC::WatchpointSet::notifyWrite):
(JSC::WatchpointSet::addressOfIsWatched):
* bytecompiler/BytecodeGenerator.cpp:
(JSC::ResolveResult::checkValidity):
(JSC::BytecodeGenerator::addGlobalVar):
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::resolve):
(JSC::BytecodeGenerator::emitResolve):
(JSC::BytecodeGenerator::emitResolveWithBase):
(JSC::BytecodeGenerator::emitResolveWithThis):
(JSC::BytecodeGenerator::emitGetStaticVar):
(JSC::BytecodeGenerator::emitPutStaticVar):
* bytecompiler/BytecodeGenerator.h:
(BytecodeGenerator):
* bytecompiler/NodesCodegen.cpp:
(JSC::FunctionCallResolveNode::emitBytecode):
(JSC::PostfixResolveNode::emitBytecode):
(JSC::PrefixResolveNode::emitBytecode):
(JSC::ReadModifyResolveNode::emitBytecode):
(JSC::AssignResolveNode::emitBytecode):
(JSC::ConstDeclNode::emitCodeSingle):
* dfg/DFGAbstractState.cpp:
(JSC::DFG::AbstractState::execute):
(JSC::DFG::AbstractState::clobberStructures):
* dfg/DFGAbstractState.h:
(AbstractState):
(JSC::DFG::AbstractState::didClobber):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleInlining):
(JSC::DFG::ByteCodeParser::parseBlock):
* dfg/DFGCCallHelpers.h:
(CCallHelpers):
(JSC::DFG::CCallHelpers::setupArguments):
* dfg/DFGCSEPhase.cpp:
(JSC::DFG::CSEPhase::globalVarWatchpointElimination):
(CSEPhase):
(JSC::DFG::CSEPhase::globalVarStoreElimination):
(JSC::DFG::CSEPhase::performNodeCSE):
* dfg/DFGCapabilities.h:
(JSC::DFG::canCompileOpcode):
* dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::run):
* dfg/DFGCorrectableJumpPoint.h:
(JSC::DFG::CorrectableJumpPoint::isSet):
(CorrectableJumpPoint):
* dfg/DFGJITCompiler.cpp:
(JSC::DFG::JITCompiler::linkOSRExits):
(JSC::DFG::JITCompiler::link):
* dfg/DFGNode.h:
(JSC::DFG::Node::hasIdentifierNumberForCheck):
(Node):
(JSC::DFG::Node::identifierNumberForCheck):
(JSC::DFG::Node::hasRegisterPointer):
* dfg/DFGNodeType.h:
(DFG):
* dfg/DFGOSRExit.cpp:
(JSC::DFG::OSRExit::OSRExit):
* dfg/DFGOSRExit.h:
(OSRExit):
* dfg/DFGOperations.cpp:
* dfg/DFGOperations.h:
* dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::propagate):
* dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::callOperation):
(JSC::DFG::SpeculativeJIT::appendCall):
(SpeculativeJIT):
(JSC::DFG::SpeculativeJIT::speculationWatchpoint):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):
* jit/JIT.h:
* jit/JITPropertyAccess.cpp:
(JSC::JIT::emit_op_put_global_var_check):
(JSC):
(JSC::JIT::emitSlow_op_put_global_var_check):
* jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emit_op_put_global_var_check):
(JSC):
(JSC::JIT::emitSlow_op_put_global_var_check):
* jit/JITStubs.cpp:
(JSC::JITThunks::JITThunks):
(JSC::DEFINE_STUB_FUNCTION):
(JSC):
* jit/JITStubs.h:
* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
(LLInt):
* llint/LLIntSlowPaths.h:
(LLInt):
* llint/LowLevelInterpreter32_64.asm:
* llint/LowLevelInterpreter64.asm:
* runtime/JSObject.cpp:
(JSC::JSObject::removeDirect):
* runtime/JSObject.h:
(JSObject):
* runtime/JSSymbolTableObject.h:
(JSC::symbolTableGet):
(JSC::symbolTablePut):
(JSC::symbolTablePutWithAttributes):
* runtime/SymbolTable.cpp: Added.
(JSC):
(JSC::SymbolTableEntry::copySlow):
(JSC::SymbolTableEntry::freeFatEntrySlow):
(JSC::SymbolTableEntry::couldBeWatched):
(JSC::SymbolTableEntry::attemptToWatch):
(JSC::SymbolTableEntry::addressOfIsWatched):
(JSC::SymbolTableEntry::addWatchpoint):
(JSC::SymbolTableEntry::notifyWriteSlow):
(JSC::SymbolTableEntry::inflateSlow):
* runtime/SymbolTable.h:
(JSC):
(SymbolTableEntry):
(Fast):
(JSC::SymbolTableEntry::Fast::Fast):
(JSC::SymbolTableEntry::Fast::isNull):
(JSC::SymbolTableEntry::Fast::getIndex):
(JSC::SymbolTableEntry::Fast::isReadOnly):
(JSC::SymbolTableEntry::Fast::getAttributes):
(JSC::SymbolTableEntry::Fast::isFat):
(JSC::SymbolTableEntry::SymbolTableEntry):
(JSC::SymbolTableEntry::~SymbolTableEntry):
(JSC::SymbolTableEntry::operator=):
(JSC::SymbolTableEntry::isNull):
(JSC::SymbolTableEntry::getIndex):
(JSC::SymbolTableEntry::getFast):
(JSC::SymbolTableEntry::getAttributes):
(JSC::SymbolTableEntry::isReadOnly):
(JSC::SymbolTableEntry::watchpointSet):
(JSC::SymbolTableEntry::notifyWrite):
(FatEntry):
(JSC::SymbolTableEntry::FatEntry::FatEntry):
(JSC::SymbolTableEntry::isFat):
(JSC::SymbolTableEntry::fatEntry):
(JSC::SymbolTableEntry::inflate):
(JSC::SymbolTableEntry::bits):
(JSC::SymbolTableEntry::freeFatEntry):
(JSC::SymbolTableEntry::pack):
(JSC::SymbolTableEntry::isValidIndex):

Source/WTF: 

Reviewed by Geoffrey Garen.
        
Added ability to set the inline capacity of segmented vectors.

* wtf/SegmentedVector.h:
(WTF):
(SegmentedVectorIterator):
(WTF::SegmentedVectorIterator::operator=):
(WTF::SegmentedVectorIterator::SegmentedVectorIterator):
(SegmentedVector):

LayoutTests: 

Rubber stamped by Geoffrey Garen.
        
Added a test for watchpoints. Also updated the jsc-test-list to include the latest
tests.

* fast/js/dfg-call-function-hit-watchpoint-expected.txt: Added.
* fast/js/dfg-call-function-hit-watchpoint.html: Added.
* fast/js/jsc-test-list:
* fast/js/script-tests/dfg-call-function-hit-watchpoint.js: Added.
(foo):
(bar):
(.foo):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@120172 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Editing tests should use testRunner instead of layoutTestController
https://bugs.webkit.org/show_bug.cgi?id=88955

Reviewed by Darin Adler.

* editing/:
* platform/blackberry/editing/text-iterator/findString-markers.html:
* platform/chromium-linux/editing/selection/linux_selection_color.html:
* platform/chromium-win/editing/selection/paragraph-granularity-expected.txt:
* platform/chromium-win/editing/selection/triple-click-in-pre-expected.txt:
* platform/chromium-win/editing/selection/word-granularity-expected.txt:
* platform/chromium/editing/spelling/delete-misspelled-word.html:
* platform/chromium/editing/spelling/move-cursor-to-misspelled-word.html:
* platform/gtk/editing/pasteboard/middle-button-paste.html:
* platform/gtk/editing/pasteboard/script-tests/middle-click-onpaste.js:
* platform/gtk/editing/selection/caret-mode-document-begin-end.html:
* platform/gtk/editing/selection/paragraph-granularity-expected.txt:
* platform/gtk/editing/selection/triple-click-in-pre-expected.txt:
* platform/gtk/editing/selection/word-granularity-expected.txt:
* platform/mac/editing/:
* platform/qt/editing/selection/paragraph-granularity-expected.txt:
* platform/qt/editing/selection/triple-click-in-pre-expected.txt:
* platform/qt/editing/selection/word-granularity-expected.txt:
* platform/win/editing/deleting/delete-start-block-expected.txt:
* platform/win/editing/pasteboard/pasting-crlf-isnt-translated-to-crcrlf-win.html:
* platform/win/editing/selection/shift-page-up-down.html:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@120173 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Commit the rest of changes for r120167.

* http/tests/history/resources/back-during-onload-hung-page.php:
* http/tests/misc/embed-image-load-outlives-gc-without-crashing.html:
* http/tests/misc/image-input-type-outlives-gc-without-crashing.html:
* http/tests/misc/image-load-outlives-gc-without-crashing.html:
* http/tests/misc/object-image-load-outlives-gc-without-crashing.html:
* http/tests/security/:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@120174 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, rolling out r120172.
http://trac.webkit.org/changeset/120172
https://bugs.webkit.org/show_bug.cgi?id=88976

The patch causes compilation failures on Gtk, Qt and Apple Win
bots (Requested by zdobersek on #webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-06-13

Source/JavaScriptCore: 

* CMakeLists.txt:
* GNUmakefile.list.am:
* JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
* JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
* JavaScriptCore.xcodeproj/project.pbxproj:
* Target.pri:
* assembler/ARMv7Assembler.h:
(JSC::ARMv7Assembler::nop):
(JSC::ARMv7Assembler::label):
(JSC::ARMv7Assembler::readPointer):
(ARMv7Assembler):
* assembler/AbstractMacroAssembler.h:
(JSC):
(AbstractMacroAssembler):
(Label):
* assembler/AssemblerBuffer.h:
* assembler/MacroAssemblerARM.h:
* assembler/MacroAssemblerARMv7.h:
(JSC::MacroAssemblerARMv7::nop):
(JSC::MacroAssemblerARMv7::jump):
(JSC::MacroAssemblerARMv7::makeBranch):
* assembler/MacroAssemblerMIPS.h:
* assembler/MacroAssemblerSH4.h:
* assembler/MacroAssemblerX86.h:
(MacroAssemblerX86):
(JSC::MacroAssemblerX86::moveWithPatch):
* assembler/MacroAssemblerX86Common.h:
* assembler/MacroAssemblerX86_64.h:
(JSC::MacroAssemblerX86_64::branchTest8):
* assembler/X86Assembler.h:
(JSC::X86Assembler::cmpb_im):
(JSC::X86Assembler::codeSize):
(JSC::X86Assembler::label):
(JSC::X86Assembler::X86InstructionFormatter::memoryModRM):
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::dump):
* bytecode/CodeBlock.h:
(JSC::CodeBlock::appendOSRExit):
(JSC::CodeBlock::appendSpeculationRecovery):
(DFGData):
* bytecode/DFGExitProfile.h:
(JSC::DFG::exitKindToString):
(JSC::DFG::exitKindIsCountable):
* bytecode/Instruction.h:
* bytecode/Opcode.h:
(JSC):
(JSC::padOpcodeName):
* bytecode/Watchpoint.cpp: Removed.
* bytecode/Watchpoint.h: Removed.
* bytecompiler/BytecodeGenerator.cpp:
(JSC::ResolveResult::checkValidity):
(JSC::BytecodeGenerator::addGlobalVar):
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::resolve):
(JSC::BytecodeGenerator::emitResolve):
(JSC::BytecodeGenerator::emitResolveWithBase):
(JSC::BytecodeGenerator::emitResolveWithThis):
(JSC::BytecodeGenerator::emitGetStaticVar):
(JSC::BytecodeGenerator::emitPutStaticVar):
* bytecompiler/BytecodeGenerator.h:
(BytecodeGenerator):
* bytecompiler/NodesCodegen.cpp:
(JSC::FunctionCallResolveNode::emitBytecode):
(JSC::PostfixResolveNode::emitBytecode):
(JSC::PrefixResolveNode::emitBytecode):
(JSC::ReadModifyResolveNode::emitBytecode):
(JSC::AssignResolveNode::emitBytecode):
(JSC::ConstDeclNode::emitCodeSingle):
* dfg/DFGAbstractState.cpp:
(JSC::DFG::AbstractState::execute):
(JSC::DFG::AbstractState::clobberStructures):
* dfg/DFGAbstractState.h:
(AbstractState):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleInlining):
(JSC::DFG::ByteCodeParser::parseBlock):
* dfg/DFGCCallHelpers.h:
(JSC::DFG::CCallHelpers::setupArguments):
* dfg/DFGCSEPhase.cpp:
(JSC::DFG::CSEPhase::globalVarStoreElimination):
(JSC::DFG::CSEPhase::performNodeCSE):
* dfg/DFGCapabilities.h:
(JSC::DFG::canCompileOpcode):
* dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::run):
* dfg/DFGCorrectableJumpPoint.h:
* dfg/DFGJITCompiler.cpp:
(JSC::DFG::JITCompiler::linkOSRExits):
(JSC::DFG::JITCompiler::link):
* dfg/DFGNode.h:
(JSC::DFG::Node::hasRegisterPointer):
* dfg/DFGNodeType.h:
(DFG):
* dfg/DFGOSRExit.cpp:
(JSC::DFG::OSRExit::OSRExit):
* dfg/DFGOSRExit.h:
(OSRExit):
* dfg/DFGOperations.cpp:
* dfg/DFGOperations.h:
* dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::propagate):
* dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::callOperation):
(JSC::DFG::SpeculativeJIT::appendCallSetResult):
(JSC::DFG::SpeculativeJIT::speculationCheck):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):
* jit/JIT.h:
* jit/JITPropertyAccess.cpp:
* jit/JITPropertyAccess32_64.cpp:
* jit/JITStubs.cpp:
* jit/JITStubs.h:
* llint/LLIntSlowPaths.cpp:
* llint/LLIntSlowPaths.h:
(LLInt):
* llint/LowLevelInterpreter32_64.asm:
* llint/LowLevelInterpreter64.asm:
* runtime/JSObject.cpp:
(JSC::JSObject::removeDirect):
* runtime/JSObject.h:
(JSObject):
* runtime/JSSymbolTableObject.h:
(JSC::symbolTableGet):
(JSC::symbolTablePut):
(JSC::symbolTablePutWithAttributes):
* runtime/SymbolTable.cpp: Removed.
* runtime/SymbolTable.h:
(JSC):
(JSC::SymbolTableEntry::isNull):
(JSC::SymbolTableEntry::getIndex):
(SymbolTableEntry):
(JSC::SymbolTableEntry::getAttributes):
(JSC::SymbolTableEntry::isReadOnly):
(JSC::SymbolTableEntry::pack):
(JSC::SymbolTableEntry::isValidIndex):

Source/WTF: 

* wtf/SegmentedVector.h:
(WTF):
(SegmentedVectorIterator):
(WTF::SegmentedVectorIterator::operator=):
(WTF::SegmentedVectorIterator::SegmentedVectorIterator):
(SegmentedVector):

LayoutTests: 

* fast/js/dfg-call-function-hit-watchpoint-expected.txt: Removed.
* fast/js/dfg-call-function-hit-watchpoint.html: Removed.
* fast/js/jsc-test-list:
* fast/js/script-tests/dfg-call-function-hit-watchpoint.js: Removed.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@120175 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Revert the removal of 2 editing tests in r120173.

* editing/pasteboard/copy-paste-float.html: Copied from LayoutTests/editing/pasteboard/copy-paste-float.html.
* platform/mac/editing/selection/word-thai.html: Copied from LayoutTests/platform/mac/editing/selection/word-thai.html.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@120176 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Implement InspectorFileSystemAgent::readDirectory for FileSystem support.
https://bugs.webkit.org/show_bug.cgi?id=87724

Patch by Taiju Tsuiki <tzik@chromium.org> on 2012-06-13
Reviewed by Vsevolod Vlasov.

Source/WebCore:

Test: http/tests/inspector/filesystem/read-directory.html

* inspector/Inspector.json:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
* inspector/InspectorFileSystemAgent.cpp:
(InspectorFileSystemAgent::FrontendProvider):
(WebCore):
(WebCore::InspectorFileSystemAgent::create):
(WebCore::InspectorFileSystemAgent::readDirectory):
(WebCore::InspectorFileSystemAgent::InspectorFileSystemAgent):
* inspector/InspectorFileSystemAgent.h:
(WebCore):
(InspectorFileSystemAgent):

LayoutTests:

* http/tests/inspector/filesystem/filesystem-test.js: Added.
* http/tests/inspector/filesystem/read-directory-expected.txt: Added.
* http/tests/inspector/filesystem/read-directory.html: Added.
* platform/mac/Skipped:
* platform/qt/Skipped:
* platform/win/Skipped:
* platform/wincairo/Skipped:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@120177 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Tools: Update the builder name for Apple Lion builders.

* Scripts/webkitpy/layout_tests/port/builders.py:

LayoutTests: Mac rebaseline after r120167 and r120173.

Also revert an inadvertent change to file.invalidext.

* editing/pasteboard/file-input-files-access-expected.txt:
* editing/pasteboard/paste-sanitize-crash-2-expected.txt:
* editing/pasteboard/resources/file.invalidext:
* editing/selection/blockquote-crash-expected.txt:
* editing/style/4230923-expected.txt:
* platform/mac/editing/pasteboard/4641033-expected.txt:
* platform/mac/editing/selection/mixed-editability-1-expected.txt:
* platform/mac/editing/selection/paragraph-granularity-expected.txt:
* platform/mac/editing/selection/triple-click-in-pre-expected.txt:
* platform/mac/editing/selection/word-granularity-expected.txt:
* platform/mac/http/tests/misc/location-replace-crossdomain-expected.txt:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@120178 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fix a wrong rebaseline in r120178.

* editing/pasteboard/file-input-files-access-expected.txt:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@120179 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Chromium rebaseline after r120173.

* platform/chromium-linux/editing/pasteboard/4641033-expected.txt:
* platform/chromium-linux/editing/selection/paragraph-granularity-expected.png:
* platform/chromium-linux/editing/selection/triple-click-in-pre-expected.png:
* platform/chromium-linux/editing/selection/word-granularity-expected.png:
* platform/chromium-mac-leopard/editing/selection/paragraph-granularity-expected.png:
* platform/chromium-mac-leopard/editing/selection/triple-click-in-pre-expected.png:
* platform/chromium-mac-leopard/editing/selection/word-granularity-expected.png:
* platform/chromium-mac-snowleopard/editing/selection/paragraph-granularity-expected.png:
* platform/chromium-mac-snowleopard/editing/selection/triple-click-in-pre-expected.png:
* platform/chromium-mac-snowleopard/editing/selection/word-granularity-expected.png:
* platform/chromium-mac/editing/selection/paragraph-granularity-expected.png:
* platform/chromium-mac/editing/selection/triple-click-in-pre-expected.png:
* platform/chromium-mac/editing/selection/word-granularity-expected.png:
* platform/chromium-win/editing/inserting/editable-html-element-expected.txt:
* platform/chromium-win/editing/pasteboard/4641033-expected.png:
* platform/chromium-win/editing/pasteboard/4641033-expected.txt:
* platform/chromium-win/editing/selection/mixed-editability-1-expected.txt:
* platform/chromium-win/editing/selection/paragraph-granularity-expected.png:
* platform/chromium-win/editing/selection/paragraph-granularity-expected.txt:
* platform/chromium-win/editing/selection/triple-click-in-pre-expected.png:
* platform/chromium-win/editing/selection/triple-click-in-pre-expected.txt:
* platform/chromium-win/editing/selection/word-granularity-expected.png:
* platform/chromium-win/editing/selection/word-granularity-expected.txt:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@120180 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Speech JavaScript API: Add test for constructing SpeechRecognitionError events
https://bugs.webkit.org/show_bug.cgi?id=88868

Reviewed by Adam Barth.

Source/WebCore:

This adds a test for constructing SpeechRecognitionError events, and
code to make it work.

Test: fast/events/constructors/speech-recognition-error-constructor.html

* Modules/speech/SpeechRecognitionError.cpp:
(WebCore::SpeechRecognitionError::create):
(WebCore):
(WebCore::SpeechRecognitionError::SpeechRecognitionError):
(WebCore::SpeechRecognitionErrorInit::SpeechRecognitionErrorInit):
* Modules/speech/SpeechRecognitionError.h:
(SpeechRecognitionErrorInit):
(WebCore):
(SpeechRecognitionError):
(WebCore::SpeechRecognitionError::code):
* Modules/speech/SpeechRecognitionError.idl:

LayoutTests:

Add a layout test for constructing SpeechRecognitionError events.

* fast/events/constructors/speech-recognition-error-constructor-expected.txt: Added.
* fast/events/constructors/speech-recognition-error-constructor.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@120181 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Web Inspector: Make "Go to source and line" possible with "go to file" dialog
https://bugs.webkit.org/show_bug.cgi?id=88740

Reviewed by Vsevolod Vlasov.

Selection dialog now allows search query rewrite and uses line number
suffix to go to a particular line.

* inspector/front-end/FilteredItemSelectionDialog.js:
(WebInspector.FilteredItemSelectionDialog.prototype.onEnter):
(WebInspector.FilteredItemSelectionDialog.prototype._createSearchRegExp):
(WebInspector.SelectionDialogContentProvider.prototype.selectItem):
(WebInspector.SelectionDialogContentProvider.prototype.rewriteQuery):
(WebInspector.JavaScriptOutlineDialog.prototype.selectItem):
(WebInspector.JavaScriptOutlineDialog.prototype.rewriteQuery):
(WebInspector.OpenResourceDialog.prototype.selectItem):
(WebInspector.OpenResourceDialog.prototype.rewriteQuery):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype.showUISourceCode):
* inspector/front-end/StylesPanel.js:
(WebInspector.StyleSheetOutlineDialog.prototype.selectItem):
(WebInspector.StyleSheetOutlineDialog.prototype.rewriteQuery):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@120182 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Prevent stderr output from messing up detection of build path

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

Warnings such as 'perl: warning: Setting locale failed' will otherwise
end up as the build path when calling out to webkit-build-directory.

Reviewed by Ojan Vafai.

* Scripts/webkitpy/layout_tests/port/config.py:
(Config.build_directory):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@120183 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Web Inspector: Make "Go to source and line" possible with "go to file" dialog
https://bugs.webkit.org/show_bug.cgi?id=88740

Reviewed by Vsevolod Vlasov.

Selection dialog now allows search query rewrite and uses line number
suffix to go to a particular line.

* inspector/front-end/FilteredItemSelectionDialog.js:
(WebInspector.FilteredItemSelectionDialog.prototype.onEnter):
(WebInspector.FilteredItemSelectionDialog.prototype._createSearchRegExp):
(WebInspector.SelectionDialogContentProvider.prototype.selectItem):
(WebInspector.SelectionDialogContentProvider.prototype.rewriteQuery):
(WebInspector.JavaScriptOutlineDialog.prototype.selectItem):
(WebInspector.JavaScriptOutlineDialog.prototype.rewriteQuery):
(WebInspector.OpenResourceDialog.prototype.selectItem):
(WebInspector.OpenResourceDialog.prototype.rewriteQuery):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype.showUISourceCode):
* inspector/front-end/StylesPanel.js:
(WebInspector.StyleSheetOutlineDialog.prototype.selectItem):
(WebInspector.StyleSheetOutlineDialog.prototype.rewriteQuery):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@120184 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Web Inspector: show revisions of all modified files in local modifications view
https://bugs.webkit.org/show_bug.cgi?id=88864

Reviewed by Vsevolod Vlasov.

This change allows all local modifications to be seen in a single view. View is now
singleton, listening to all revisions being added. Revert captions were reworked
(see the screenshot).

* English.lproj/localizedStrings.js:
* inspector/front-end/Resource.js:
* inspector/front-end/RevisionHistoryView.js:
(WebInspector.RevisionHistoryView.populateRevisions):
(WebInspector.RevisionHistoryView):
(WebInspector.RevisionHistoryView.showHistory):
(WebInspector.RevisionHistoryView.reset):
(WebInspector.RevisionHistoryView.prototype._createResourceItem.clearHistory):
(WebInspector.RevisionHistoryView.prototype._createResourceItem):
(WebInspector.RevisionHistoryView.prototype._revisionAdded.get if):
(WebInspector.RevisionHistoryView.prototype._revisionAdded):
(WebInspector.RevisionHistoryView.prototype._revealResource.get if):
(WebInspector.RevisionHistoryView.prototype._revealResource):
(WebInspector.RevisionHistoryView.prototype._reset):
(WebInspector.RevisionHistoryTreeElement):
(WebInspector.RevisionHistoryTreeElement.prototype.onattach):
(WebInspector.RevisionHistoryTreeElement.prototype.oncollapse):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype._reset):
(WebInspector.ScriptsPanel.prototype._editorSelected):
* inspector/front-end/revisionHistory.css:
(.revision-history-link-row):
(.revision-history-drawer li.revision-history-revision):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@120185 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Web Inspector: working copy should be committed even if domain binding returns error.
https://bugs.webkit.org/show_bug.cgi?id=88884

Reviewed by Vsevolod Vlasov.

Committing working copy is about saving file. It should always succeed.

* inspector/front-end/UISourceCode.js:
(WebInspector.UISourceCode.prototype.commitWorkingCopy):

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