Prettify generated build guards in HTMLElementFactory.cpp
https://bugs.webkit.org/show_bug.cgi?id=120310

Reviewed by Darin Adler.

Build guards should wrap the constructor definitions without empty lines between
the guards and the constructor code. Similarly, build guards for addTag calls
shouldn't put an empty line after the build guard closure.

* dom/make_names.pl:
(printConstructorInterior):
(printConstructors):
(printFunctionInits):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154623 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Undefine __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS before redefining them
https://bugs.webkit.org/show_bug.cgi?id=120313

Reviewed by Darin Adler.

* wtf/LLVMHeaders.h: Undefine the two macros before they are defined again.
This way we avoid the compilation-time warnings about the macros being invalidly redefined.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154625 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Plenty of -Wcast-align warnings in KeywordLookup.h
https://bugs.webkit.org/show_bug.cgi?id=120316

Reviewed by Darin Adler.

* KeywordLookupGenerator.py: Use reinterpret_cast instead of a C-style cast when casting
the character pointers to types of larger size. This avoids spewing lots of warnings
in the KeywordLookup.h header when compiling with the -Wcast-align option.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154626 268f45cc-cd09-0410-ab3c-d52691b4dbfc
<https://bugs.webkit.org/show_bug.cgi?id=119829> Add IAccessibleText and IAccessibleEditableText interfaces and implementation to AppleWin port.

Reviewed by Chris Fleizach.

* AccessibleBase.cpp:
(AccessibleBase::createInstance): Create an AccessibleText instance when necessary.
(AccessibleBase::QueryService):
* AccessibleBase.h:
* AccessibleTextImpl.cpp: Added.
(AccessibleText::AccessibleText):
(AccessibleText::addSelection):
(AccessibleText::get_attributes): Not Implemented
(AccessibleText::get_caretOffset):
(AccessibleText::get_characterExtents):
(AccessibleText::get_nSelections):
(AccessibleText::get_offsetAtPoint):
(AccessibleText::get_selection):
(AccessibleText::get_text):
(AccessibleText::get_textBeforeOffset): Not Implemented
(AccessibleText::get_textAfterOffset): Not Implemented
(AccessibleText::get_textAtOffset): Not Implemented
(AccessibleText::removeSelection):
(AccessibleText::setCaretOffset):
(AccessibleText::setSelection):
(AccessibleText::get_nCharacters):
(AccessibleText::scrollSubstringTo):
(AccessibleText::scrollSubstringToPoint):
(AccessibleText::get_newText): Not Implemented
(AccessibleText::get_oldText): Not Implemented
(AccessibleText::get_attributeRange): Not Implemented
(AccessibleText::copyText):
(AccessibleText::deleteText):
(AccessibleText::insertText):
(AccessibleText::cutText):
(AccessibleText::pasteText):
(AccessibleText::replaceText):
(AccessibleText::setAttributes): Not Implemented
(AccessibleText::QueryInterface):
(AccessibleText::Release):
(AccessibleText::convertSpecialOffset):
(AccessibleText::initialCheck):
* AccessibleTextImpl.h: Added.
(AccessibleText::~AccessibleText):
(AccessibleText::AddRef):
* WebKit.vcxproj/Interfaces/Interfaces.vcxproj:
* WebKit.vcxproj/Interfaces/Interfaces.vcxproj.filters:
* WebKit.vcxproj/WebKit/WebKit.vcxproj:
* WebKit.vcxproj/WebKit/WebKit.vcxproj.filters:
* WebKit.vcxproj/WebKitGUID/WebKitGUID.vcxproj:
* WebKit.vcxproj/WebKitGUID/WebKitGUID.vcxproj.filters:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154627 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Computed style of fill/stroke properties incorrect on references
https://bugs.webkit.org/show_bug.cgi?id=114761

Reviewed by Darin Adler.

Source/WebCore:

The computed style of the fill and stroke properties did not include
the url() function. Added the url() string to output.

Updated existing tests to cover the issue.

* css/CSSPrimitiveValue.cpp: Cleanup.
(WebCore::CSSPrimitiveValue::customCssText):
* svg/SVGPaint.cpp: Added "url("
(WebCore::SVGPaint::customCssText):

LayoutTests:

Add tests to verify that url function is included for references.

* svg/css/script-tests/svg-attribute-parser-mode.js:
* svg/css/svg-attribute-parser-mode-expected.txt:
* transitions/svg-transitions-expected.txt:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154628 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add support for Promises
https://bugs.webkit.org/show_bug.cgi?id=120260

Reviewed by Darin Adler.

Source/JavaScriptCore: 

Add an initial implementation of Promises - http://dom.spec.whatwg.org/#promises.
- Despite Promises being defined in the DOM, the implementation is being put in JSC
  in preparation for the Promises eventually being defined in ECMAScript.

* CMakeLists.txt:
* DerivedSources.make:
* DerivedSources.pri:
* GNUmakefile.list.am:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
* JavaScriptCore.xcodeproj/project.pbxproj:
* Target.pri:
Add new files.

* jsc.cpp:
Update jsc's GlobalObjectMethodTable to stub out the new QueueTaskToEventLoop callback. This mean's
you can't quite use Promises with with the command line tool yet.
    
* interpreter/CallFrame.h:
(JSC::ExecState::promisePrototypeTable):
(JSC::ExecState::promiseConstructorTable):
(JSC::ExecState::promiseResolverPrototypeTable):
* runtime/VM.cpp:
(JSC::VM::VM):
(JSC::VM::~VM):
* runtime/VM.h:
Add supporting code for the new static lookup tables.

* runtime/CommonIdentifiers.h:
Add 3 new identifiers, "Promise", "PromiseResolver", and "then".

* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::reset):
(JSC::JSGlobalObject::visitChildren):
Add supporting code Promise and PromiseResolver's constructors and structures.

* runtime/JSGlobalObject.h:
(JSC::TaskContext::~TaskContext):
Add a new callback to the GlobalObjectMethodTable to post a task on the embedder's runloop.

(JSC::JSGlobalObject::promisePrototype):
(JSC::JSGlobalObject::promiseResolverPrototype):
(JSC::JSGlobalObject::promiseStructure):
(JSC::JSGlobalObject::promiseResolverStructure):
(JSC::JSGlobalObject::promiseCallbackStructure):
(JSC::JSGlobalObject::promiseWrapperCallbackStructure):
Add supporting code Promise and PromiseResolver's constructors and structures.

* runtime/JSPromise.cpp: Added.
* runtime/JSPromise.h: Added.
* runtime/JSPromiseCallback.cpp: Added.
* runtime/JSPromiseCallback.h: Added.
* runtime/JSPromiseConstructor.cpp: Added.
* runtime/JSPromiseConstructor.h: Added.
* runtime/JSPromisePrototype.cpp: Added.
* runtime/JSPromisePrototype.h: Added.
* runtime/JSPromiseResolver.cpp: Added.
* runtime/JSPromiseResolver.h: Added.
* runtime/JSPromiseResolverConstructor.cpp: Added.
* runtime/JSPromiseResolverConstructor.h: Added.
* runtime/JSPromiseResolverPrototype.cpp: Added.
* runtime/JSPromiseResolverPrototype.h: Added.
Add Promise implementation.

Source/WebCore: 

Add an initial implementation of Promises - http://dom.spec.whatwg.org/#promises.
- Despite Promises being defined in the DOM, the implementation is being put in JSC
  in preparation for the Promises eventually being defined in ECMAScript.

Tests: fast/js/Promise-already-fulfilled.html
       fast/js/Promise-already-rejected.html
       fast/js/Promise-already-resolved.html
       fast/js/Promise-catch-in-workers.html
       fast/js/Promise-catch.html
       fast/js/Promise-chain.html
       fast/js/Promise-exception.html
       fast/js/Promise-fulfill-in-workers.html
       fast/js/Promise-fulfill.html
       fast/js/Promise-init-in-workers.html
       fast/js/Promise-init.html
       fast/js/Promise-reject-in-workers.html
       fast/js/Promise-reject.html
       fast/js/Promise-resolve-chain.html
       fast/js/Promise-resolve-in-workers.html
       fast/js/Promise-resolve-with-then-exception.html
       fast/js/Promise-resolve-with-then-fulfill.html
       fast/js/Promise-resolve-with-then-reject.html
       fast/js/Promise-resolve.html
       fast/js/Promise-simple-fulfill-inside-callback.html
       fast/js/Promise-simple-fulfill.html
       fast/js/Promise-simple-in-workers.html
       fast/js/Promise-simple.html
       fast/js/Promise-static-fulfill.html
       fast/js/Promise-static-reject.html
       fast/js/Promise-static-resolve.html
       fast/js/Promise-then-in-workers.html
       fast/js/Promise-then-without-callbacks-in-workers.html
       fast/js/Promise-then-without-callbacks.html
       fast/js/Promise-then.html
       fast/js/Promise-types.html
       fast/js/Promise.html

* GNUmakefile.list.am:
* Target.pri:
* UseJSC.cmake:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSBindingsAllInOne.cpp:
Add new files.

* bindings/js/JSDOMGlobalObjectTask.cpp: Added.
(WebCore::JSGlobalObjectCallback::create):
(WebCore::JSGlobalObjectCallback::~JSGlobalObjectCallback):
(WebCore::JSGlobalObjectCallback::call):
(WebCore::JSGlobalObjectCallback::JSGlobalObjectCallback):
(WebCore::JSGlobalObjectTask::JSGlobalObjectTask):
(WebCore::JSGlobalObjectTask::~JSGlobalObjectTask):
(WebCore::JSGlobalObjectTask::performTask):
* bindings/js/JSDOMGlobalObjectTask.h: Added.
(WebCore::JSGlobalObjectTask::create):
Add a new task type to be used with the GlobalObjectMethodTable's new QueueTaskToEventLoop callback.

* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::queueTaskToEventLoop):
* bindings/js/JSDOMWindowBase.h:
Implement the GlobalObjectMethodTable callback, QueueTaskToEventLoop. 

* bindings/js/JSMainThreadExecState.h:
All using JSMainThreadExecState as a simple RAII object.

* bindings/js/JSWorkerGlobalScopeBase.cpp:
(WebCore::JSWorkerGlobalScopeBase::JSWorkerGlobalScopeBase):
(WebCore::JSWorkerGlobalScopeBase::allowsAccessFrom):
(WebCore::JSWorkerGlobalScopeBase::supportsProfiling):
(WebCore::JSWorkerGlobalScopeBase::supportsRichSourceInfo):
(WebCore::JSWorkerGlobalScopeBase::shouldInterruptScript):
(WebCore::JSWorkerGlobalScopeBase::javaScriptExperimentsEnabled):
(WebCore::JSWorkerGlobalScopeBase::queueTaskToEventLoop):
* bindings/js/JSWorkerGlobalScopeBase.h:
Add a GlobalObjectMethodTable and implement QueueTaskToEventLoop. Forward the other callbacks
to JSGlobalObject so they retain their existing behavior.

LayoutTests: 

Add tests adapted from the Mozilla and Blink projects.

* fast/js/Promise-already-fulfilled-expected.txt: Added.
* fast/js/Promise-already-fulfilled.html: Added.
* fast/js/Promise-already-rejected-expected.txt: Added.
* fast/js/Promise-already-rejected.html: Added.
* fast/js/Promise-already-resolved-expected.txt: Added.
* fast/js/Promise-already-resolved.html: Added.
* fast/js/Promise-catch-expected.txt: Added.
* fast/js/Promise-catch-in-workers-expected.txt: Added.
* fast/js/Promise-catch-in-workers.html: Added.
* fast/js/Promise-catch.html: Added.
* fast/js/Promise-chain-expected.txt: Added.
* fast/js/Promise-chain.html: Added.
* fast/js/Promise-exception-expected.txt: Added.
* fast/js/Promise-exception.html: Added.
* fast/js/Promise-expected.txt: Added.
* fast/js/Promise-fulfill-expected.txt: Added.
* fast/js/Promise-fulfill-in-workers-expected.txt: Added.
* fast/js/Promise-fulfill-in-workers.html: Added.
* fast/js/Promise-fulfill.html: Added.
* fast/js/Promise-init-expected.txt: Added.
* fast/js/Promise-init-in-workers-expected.txt: Added.
* fast/js/Promise-init-in-workers.html: Added.
* fast/js/Promise-init.html: Added.
* fast/js/Promise-reject-expected.txt: Added.
* fast/js/Promise-reject-in-workers-expected.txt: Added.
* fast/js/Promise-reject-in-workers.html: Added.
* fast/js/Promise-reject.html: Added.
* fast/js/Promise-resolve-chain-expected.txt: Added.
* fast/js/Promise-resolve-chain.html: Added.
* fast/js/Promise-resolve-expected.txt: Added.
* fast/js/Promise-resolve-in-workers-expected.txt: Added.
* fast/js/Promise-resolve-in-workers.html: Added.
* fast/js/Promise-resolve-with-then-exception-expected.txt: Added.
* fast/js/Promise-resolve-with-then-exception.html: Added.
* fast/js/Promise-resolve-with-then-fulfill-expected.txt: Added.
* fast/js/Promise-resolve-with-then-fulfill.html: Added.
* fast/js/Promise-resolve-with-then-reject-expected.txt: Added.
* fast/js/Promise-resolve-with-then-reject.html: Added.
* fast/js/Promise-resolve.html: Added.
* fast/js/Promise-simple-expected.txt: Added.
* fast/js/Promise-simple-fulfill-expected.txt: Added.
* fast/js/Promise-simple-fulfill-inside-callback-expected.txt: Added.
* fast/js/Promise-simple-fulfill-inside-callback.html: Added.
* fast/js/Promise-simple-fulfill.html: Added.
* fast/js/Promise-simple-in-workers-expected.txt: Added.
* fast/js/Promise-simple-in-workers.html: Added.
* fast/js/Promise-simple.html: Added.
* fast/js/Promise-static-fulfill-expected.txt: Added.
* fast/js/Promise-static-fulfill.html: Added.
* fast/js/Promise-static-reject-expected.txt: Added.
* fast/js/Promise-static-reject.html: Added.
* fast/js/Promise-static-resolve-expected.txt: Added.
* fast/js/Promise-static-resolve.html: Added.
* fast/js/Promise-then-expected.txt: Added.
* fast/js/Promise-then-in-workers-expected.txt: Added.
* fast/js/Promise-then-in-workers.html: Added.
* fast/js/Promise-then-without-callbacks-expected.txt: Added.
* fast/js/Promise-then-without-callbacks-in-workers-expected.txt: Added.
* fast/js/Promise-then-without-callbacks-in-workers.html: Added.
* fast/js/Promise-then-without-callbacks.html: Added.
* fast/js/Promise-then.html: Added.
* fast/js/Promise-types-expected.txt: Added.
* fast/js/Promise-types.html: Added.
* fast/js/Promise.html: Added.
* fast/js/resources/Promise-catch-in-workers.js: Added.
* fast/js/resources/Promise-fulfill-in-workers.js: Added.
* fast/js/resources/Promise-init-in-workers.js: Added.
* fast/js/resources/Promise-reject-in-workers.js: Added.
* fast/js/resources/Promise-resolve-in-workers.js: Added.
* fast/js/resources/Promise-simple-in-workers.js: Added.
* fast/js/resources/Promise-then-in-workers.js: Added.
* fast/js/resources/Promise-then-without-callbacks-in-workers.js: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154629 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Object.defineProperty should be able to create a PropertyDescriptor where m_attributes == 0
https://bugs.webkit.org/show_bug.cgi?id=120314

Reviewed by Darin Adler.

Currently with the way that defineProperty works, we leave a stray low bit set in 
PropertyDescriptor::m_attributes in the following code:

var o = {};
Object.defineProperty(o, 100, {writable:true, enumerable:true, configurable:true, value:"foo"});
        
This is due to the fact that the lowest non-zero attribute (ReadOnly) is represented as 1 << 1 
instead of 1 << 0. We then calculate the default attributes as (DontDelete << 1) - 1, which is 0xF, 
but only the top three bits mean anything. Even in the case above, the top three bits are set 
to 0 but the bottom bit remains set, which causes us to think m_attributes is non-zero.

Since some of these attributes and their corresponding values are exposed in the JavaScriptCore 
framework's public C API, it's safer to just change how we calculate the default value, which is
where the weirdness was originating from in the first place.

* runtime/PropertyDescriptor.cpp:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154630 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Windows] Let Page create the main Frame.
https://bugs.webkit.org/show_bug.cgi?id=120323

Reviewed by Anders Carlsson.

* WebCoreSupport/WebFrameLoaderClient.cpp:
(WebFrameLoaderClient::WebFrameLoaderClient): Remove assertion that frame
is passed as construction argument.
(WebFrameLoaderClient::createFrame): Call new 'createSubframeWithOwnerElement'
* WebCoreSupport/WebFrameLoaderClient.h: Update constructor to
handle case of no default frame argument.
(WebFrameLoaderClient::setWebFrame): Added.
* WebFrame.cpp:
(WebFrame::createSubframeWithOwnerElement): Renamed from 'init'.
(WebFrame::initWithWebFrameView): Added for new page-driven load path.
* WebFrame.h: Added new method signatures.
* WebView.cpp:
(WebView::initWithFrame): Update to match behavior of other ports.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154631 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fix indention of Executable.h.

Rubber stamped by Mark Hahnenberg.

* runtime/Executable.h:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154632 268f45cc-cd09-0410-ab3c-d52691b4dbfc
JSObject::putDirectIndexBeyondVectorLengthWithArrayStorage does a check on the length of the ArrayStorage after possible reallocing it
https://bugs.webkit.org/show_bug.cgi?id=120278

Reviewed by Geoffrey Garen.

Source/JavaScriptCore: 

* runtime/JSObject.cpp:
(JSC::JSObject::putDirectIndexBeyondVectorLengthWithArrayStorage):

LayoutTests: 

* fast/js/put-direct-index-beyond-vector-length-resize-expected.txt: Added.
* fast/js/put-direct-index-beyond-vector-length-resize.html: Added.
* fast/js/script-tests/put-direct-index-beyond-vector-length-resize.js: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154633 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed. Add missing interface files that were left out in r154627.

* Interfaces/Accessible2/AccessibleEditableText.idl: Added.
* Interfaces/Accessible2/AccessibleText.idl: Added.
* Interfaces/Accessible2/AccessibleText2.idl: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154634 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Windows build fix attempt after r154629.

* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154635 268f45cc-cd09-0410-ab3c-d52691b4dbfc
GTK+ build fix. Like r154620.

* webkit/webkitwebframe.cpp:
(webkit_web_frame_new):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154636 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Another GTK+ build fix.

* WebCoreSupport/FrameLoaderClientGtk.cpp:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154637 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Windows] Unreviewed build fix after r154629.

* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj: Add missing build files.
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154638 268f45cc-cd09-0410-ab3c-d52691b4dbfc
        [Mac] can-read-in-dragstart-event.html and can-read-in-copy-and-cut-events.html fail
        https://bugs.webkit.org/show_bug.cgi?id=113094

        Reviewed by Darin Adler.

        Mac platform implementation has checks for pasteboard change count, but it
        didn't use to update the count when writing to pasteboad from JavaScript.

        * platform/PasteboardStrategy.h: Changed changeCount function to return a long
        instead of an int, as the underlying Mac type is NSInteger. Changed all methods
        that modify the pasteboard to return a new change count.

        * platform/PlatformPasteboard.h: Changed all methods that modify the pasteboard
        to return a new change count.

        * platform/mac/PasteboardMac.mm:
        (WebCore::Pasteboard::clear): Update m_changeCount.
        (WebCore::Pasteboard::writeSelectionForTypes): Ditto.
        (WebCore::Pasteboard::writePlainText): Ditto.
        (WebCore::writeURLForTypes): Ditto.
        (WebCore::Pasteboard::writeURL): Ditto.
        (WebCore::writeFileWrapperAsRTFDAttachment): Ditto.
        (WebCore::Pasteboard::writeImage): Ditto.
        (WebCore::Pasteboard::writePasteboard): Ditto.
        (WebCore::addHTMLClipboardTypesForCocoaType): Ditto.
        (WebCore::Pasteboard::writeString): Ditto.

        * platform/mac/PlatformPasteboardMac.mm:
        (WebCore::PlatformPasteboard::changeCount): Changed returned type to long to avoid
        data loss.
        (WebCore::PlatformPasteboard::copy): Return new change count.
        (WebCore::PlatformPasteboard::addTypes): Ditto.
        (WebCore::PlatformPasteboard::setTypes): Ditto.
        (WebCore::PlatformPasteboard::setBufferForType): Ditto.
        (WebCore::PlatformPasteboard::setPathnamesForType): Ditto.
        (WebCore::PlatformPasteboard::setStringForType): Ditto. Replaced -[NSURL writeToPasteboard:]
        with an equivalent implemnentation that tells use whether writing was successful.
        There is difference with invalid URL string handling - we used to silently ignore
        such requets, but set pasteboard content to empty URL now.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154639 268f45cc-cd09-0410-ab3c-d52691b4dbfc
        WebKitTestRunner needs to protect the user's pasteboard contents while running
        https://bugs.webkit.org/show_bug.cgi?id=81419
        <rdar://problem/11066794>

        Reviewed by Darin Adler.

        Mostly a copy/paste of DRT code.

        Tested manually by making sure that editing/pasteboard/copy-image-with-alt-text.html
        doesn't interfere with my clipboard while being run in a loop.

        * WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
        * WebKitTestRunner/mac/PoseAsClass.h: Added.
        * WebKitTestRunner/mac/PoseAsClass.mm: Added.
        * WebKitTestRunner/mac/TestControllerMac.mm:
        (WTR::TestController::platformInitialize):
        (WTR::TestController::platformDestroy):
        * WebKitTestRunner/mac/WebKitTestRunnerPasteboard.h: Added.
        * WebKitTestRunner/mac/WebKitTestRunnerPasteboard.mm: Added.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154640 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Optimize FloatIntervalSearchAdapter::collectIfNeeded
https://bugs.webkit.org/show_bug.cgi?id=120237

Reviewed by David Hyatt.

Source/WebCore:

This is a port of 3 Blink patches:
https://codereview.chromium.org/22463002 (By shatch@chromium.org)
https://chromiumcodereview.appspot.com/22909005 (By me)
https://chromiumcodereview.appspot.com/23084002 (By me)

shatch optimized FloatIntervalSearchAdapter by having it store the
outermost float instead of making a bunch of calls to
logical(Left/Right/Bottom)ForFloat, and then only making that call
once when heightRemaining needs to be computed.

I noticed that now we were storing both the last float encountered and
the outermost float, and that the behavior for shape-outside wasn't
significantly changed by using the outermost float instead of the last
float encountered (and in most cases, using the outermost float gives
more reasonable behavior). Since this isn't covered in the spec yet, I
changed shape-outside to use the outermost float, making it so that we
only need to store one float pointer when walking the placed floats
tree, and keeping the performance win.

Also while changing updateOffsetIfNeeded, removed const, since that is
a lie. Nothing about that method is const.

Test: fast/shapes/shape-outside-floats/shape-outside-floats-outermost.html

* rendering/RenderBlock.cpp:
(WebCore::::updateOffsetIfNeeded):
(WebCore::::collectIfNeeded):
(WebCore::::getHeightRemaining):
(WebCore::RenderBlock::logicalLeftFloatOffsetForLine):
(WebCore::RenderBlock::logicalRightFloatOffsetForLine):
* rendering/RenderBlock.h:
(WebCore::RenderBlock::FloatIntervalSearchAdapter::FloatIntervalSearchAdapter):
(WebCore::RenderBlock::FloatIntervalSearchAdapter::outermostFloat):

LayoutTests:

Test shape-outside behavior when there is more than one float on a
given line.

* fast/shapes/shape-outside-floats/shape-outside-floats-outermost-expected.html: Added.
* fast/shapes/shape-outside-floats/shape-outside-floats-outermost.html: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154641 268f45cc-cd09-0410-ab3c-d52691b4dbfc
AppleWin build fix following r154627.

* WebKit.vcxproj/WebKitGUID/WebKitGUID.vcxproj:
* WebKit.vcxproj/WebKitGUID/WebKitGUID.vcxproj.filters:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154642 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Editor::spellChecker() should return a reference
https://bugs.webkit.org/show_bug.cgi?id=120325

Reviewed by Anders Carlsson.

* editing/Editor.cpp:
(WebCore::Editor::Editor):
* editing/Editor.h:
(WebCore::Editor::spellChecker):
* editing/SpellChecker.cpp:
(WebCore::SpellChecker::SpellChecker):
(WebCore::SpellChecker::client):
(WebCore::SpellChecker::isAsynchronousEnabled):
(WebCore::SpellChecker::didCheck):
(WebCore::SpellChecker::didCheckSucceed):
* editing/SpellChecker.h:
* page/EditorClient.h:
* testing/Internals.cpp:
(WebCore::Internals::lastSpellCheckRequestSequence):
(WebCore::Internals::lastSpellCheckProcessedSequence):


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