2008-10-22  Darin Fisher  <darin@chromium.org>

        Reviewed by Eric Seidel.

        Should not define PLATFORM(WIN,MAC,GTK) when PLATFORM(CHROMIUM) is defined
        https://bugs.webkit.org/show_bug.cgi?id=21757

        PLATFORM(CHROMIUM) implies HAVE_ACCESSIBILITY

        * wtf/Platform.h:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37783 268f45cc-cd09-0410-ab3c-d52691b4dbfc
        Reviewed by Sam Weinig.

        https://bugs.webkit.org/show_bug.cgi?id=21791
        WebCore JS bindings should be able to use non-static hash tables for properties

        Add a map for HashTables to WebCore JS client data.

        This makes property access noticeably slower, so it is an opt-in. For classes that need to be
        supported in workers in forseeable future this is not critical.

        * bindings/js/JSDOMBinding.cpp:
        (WebCore::DOMObjectHashTableMap::get):
        (WebCore::DOMObjectHashTableMap::mapFor):
        (WebCore::getHashTableForGlobalData):
        (WebCore::DOMObjectWrapperMap::mapFor):
        WebCore client data is now a class that contains both a DOM wrapper map and a property hash
        table one.

        * bindings/js/JSDOMBinding.h: Added getHashTableForGlobalData() to query the hash table map.

        * bindings/scripts/CodeGeneratorJS.pm: If the class has a NoStaticTables attribute, use
        JSDOMBinding map to access its property hash tables.

        * dom/MessageChannel.idl:
        * dom/MessagePort.idl:
        Added NoStaticTables attribute.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37784 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2008-10-22  Darin Adler  <darin@apple.com>

        * Scripts/do-webcore-rename: More renaming plans.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37785 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2008-10-22  Chris Marrin  <cmarrin@apple.com>

        Reviewed by Dave Hyatt

        Make sure that the AtomicString that identifies a set of animation keyframes
        stays live by keeping a copy in the WebKitCSSKeyframesRule.

        Also call styleSheetChanged() when the keyframes name changes, but
        add an internal method that doesn't call styleSheetChanged() for use
        during normal stylesheet parsing.

        Test: animations/change-keyframes-name.html

        * css/CSSGrammar.y:
        * css/WebKitCSSKeyframesRule.cpp:
        (WebCore::WebKitCSSKeyframesRule::setName):
        * css/WebKitCSSKeyframesRule.h:
        (WebCore::WebKitCSSKeyframesRule::setNameInternal):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37786 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2008-10-22  Ariya Hidayat  <ariya.hidayat@trolltech.com>

        Reviewed by Simon Hausmann.

        For public API, use the term boundingRect instead of boundingBox.

        * Api/qwebframe.cpp:
        (QWebHitTestResultPrivate::QWebHitTestResultPrivate):
        (QWebHitTestResult::boundingRect):
        * Api/qwebframe.h:
        * Api/qwebframe_p.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37787 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2008-10-22  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Dave Hyatt

        Moved tests from css3 to animations/transforms directories.

        * animations/change-keyframes-expected.txt: Renamed from LayoutTests/css3/change-keyframes-expected.txt.
        * animations/change-keyframes.html: Renamed from LayoutTests/css3/change-keyframes.html.
        * animations/keyframes-rule-expected.txt: Renamed from LayoutTests/css3/keyframes-rule-expected.txt.
        * animations/keyframes-rule.html: Renamed from LayoutTests/css3/keyframes-rule.html.
        * transforms/transform-value-types-expected.txt: Renamed from LayoutTests/css3/transform-value-types-expected.txt.
        * transforms/transform-value-types.html: Renamed from LayoutTests/css3/transform-value-types.html.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37788 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2008-10-22  Cameron Zwarich  <zwarich@apple.com>

        Reviewed by Geoff Garen.

        Bug 21803: Fuse op_jfalse with op_eq_null and op_neq_null
        <https://bugs.webkit.org/show_bug.cgi?id=21803>

        Fuse op_jfalse with op_eq_null and op_neq_null to make the new opcodes
        op_jeq_null and op_jneq_null.

        This is a 2.6% speedup on the V8 Raytrace benchmark, and strangely also
        a 4.7% speedup on the V8 Arguments benchmark, even though it uses
        neither of the two new opcodes.

        * VM/CTI.cpp:
        (JSC::CTI::privateCompileMainPass):
        * VM/CodeBlock.cpp:
        (JSC::CodeBlock::dump):
        * VM/CodeGenerator.cpp:
        (JSC::CodeGenerator::emitJumpIfTrue):
        (JSC::CodeGenerator::emitJumpIfFalse):
        * VM/Machine.cpp:
        (JSC::Machine::privateExecute):
        * VM/Opcode.h:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37789 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2008-10-22  David Hyatt  <hyatt@apple.com>

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

        Convert buttons over to use the new Theme API on OS X.

        Reviewed by Adam Roben

        * platform/LengthBox.h:
        (WebCore::LengthBox::LengthBox):
        * platform/Theme.cpp:
        (WebCore::Theme::controlBorder):
        (WebCore::Theme::controlPadding):
        * platform/Theme.h:
        (WebCore::Theme::controlFont):
        (WebCore::Theme::controlSize):
        (WebCore::Theme::minControlSize):
        (WebCore::Theme::controlRequiresPreWhiteSpace):
        * platform/mac/ThemeMac.h:
        (WebCore::ThemeMac::controlRequiresPreWhiteSpace):
        * platform/mac/ThemeMac.mm:
        (WebCore::checkboxSize):
        (WebCore::radioSize):
        (WebCore::buttonSizes):
        (WebCore::buttonMargins):
        (WebCore::button):
        (WebCore::paintButton):
        (WebCore::ThemeMac::controlFont):
        (WebCore::ThemeMac::controlSize):
        (WebCore::ThemeMac::minControlSize):
        (WebCore::ThemeMac::controlBorder):
        (WebCore::ThemeMac::controlPadding):
        (WebCore::ThemeMac::inflateControlPaintRect):
        (WebCore::ThemeMac::paint):
        * rendering/RenderTheme.cpp:
        (WebCore::RenderTheme::adjustStyle):
        (WebCore::RenderTheme::paint):
        (WebCore::RenderTheme::controlStatesForRenderer):
        (WebCore::RenderTheme::isDefault):
        (WebCore::RenderTheme::adjustRadioStyle):
        * rendering/RenderTheme.h:
        (WebCore::RenderTheme::setRadioSize):
        * rendering/RenderThemeMac.h:
        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::adjustRepaintRect):
        (WebCore::menuListButtonSizes):
        (WebCore::RenderThemeMac::adjustMenuListStyle):
        * rendering/style/RenderStyle.h:
        (WebCore::InheritedFlags::paddingBox):
        (WebCore::InheritedFlags::setPaddingBox):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37790 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2008-10-22  Kevin McCullough  <kmccullough@apple.com>

        Reviewed by Oliver Hunt and Tim Hatcher.

        https://bugs.webkit.org/show_bug.cgi?id=19225
        Bug 19225: JSProfiler: Create automated profiler tests
        - This change exports profiles on the console object so that they can be
        iterated over via JavaScript, and thus can be used in automated tests.

        * bindings/js/JSConsoleCustom.cpp: Get the profiles and return an array
        that JS can use.
        (WebCore::JSConsole::profiles):
        * inspector/InspectorController.h: Use the new typedef.
        (WebCore::InspectorController::profiles):
        * page/Console.cpp: Keep our own array of profile objects.
        (WebCore::Console::profileEnd):
        * page/Console.h: Ditto.
        (WebCore::Console::profiles):
        * page/Console.idl: Expose the profiles to JS.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37791 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2008-10-22  Kevin McCullough  <kmccullough@apple.com>

        Reviewed by Oliver Hunt and Tim Hatcher.

        https://bugs.webkit.org/show_bug.cgi?id=19225
        Bug 19225: JSProfiler: Create automated profiler tests
        - This change exports profiles on the console object so that they can be
        iterated over via JavaScript, and thus can be used in automated tests.

        * bindings/js/JSConsoleCustom.cpp: Get the profiles and return an array
        that JS can use.
        (WebCore::JSConsole::profiles):
        * inspector/InspectorController.h: Use the new typedef.
        (WebCore::InspectorController::profiles):
        * page/Console.cpp: Keep our own array of profile objects.
        (WebCore::Console::profileEnd):
        * page/Console.h: Ditto.
        (WebCore::Console::profiles):
        * page/Console.idl: Expose the profiles to JS.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37792 268f45cc-cd09-0410-ab3c-d52691b4dbfc
        Reviewed by Adam Roben

        <rdar://6261773> - autocomplete="off" doesn't work on Windows

        Visual Studio makes a poor decision regarding the combination of enums and bitfields, such that a 
        statement like "m_autocomplete = Off" followed by "return m_autocomplete == Off" would return "false" 
        instead of the much more correct "true."
        
        In the past we have worked around this by declaring the bitfield member as an unsigned instead 
        of the enum type.

        For more discussion, see http://trac.webkit.org/changeset/25329

        * html/HTMLInputElement.h:  Work around insane Visual Studio enum issue  *sigh*


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37793 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add a license to ElementsTreeOutline.js that was left off when it was split out from ElementsPanel.js.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37794 268f45cc-cd09-0410-ab3c-d52691b4dbfc
LayoutTests:
2008-10-22  Brady Eidson  <beidson@apple.com>

        Reviewed by Adam Roben

        <rdar://6261773> - autocomplete="off" doesn't work on Windows

        Remove a skipped test that can now pass with proper DRT support
        
        * platform/win/Skipped: Remove security/autocomplete-cleared-on-back.html

WebKitTools:
2008-10-22  Brady Eidson  <beidson@apple.com>

        Reviewed by Adam Roben
        
        <rdar://6261773> - autocomplete="off" doesn't work on Windows

        Implement LayoutTestController::elementDoesAutoCompleteForElementWithId() on Windows
        
        * DumpRenderTree/win/LayoutTestControllerWin.cpp:
        
WebKit/win:
2008-10-22  Brady Eidson  <beidson@apple.com>

        Reviewed by Adam Roben
        
        Move elementDoesAutoComplete() to IWebFramePrivate so it is exposed for DRT to use

        * Interfaces/IWebFramePrivate.idl:
        
        * WebFrame.cpp:
        (WebFrame::elementDoesAutoComplete):
        * WebFrame.h:
        
        * WebHTMLRepresentation.cpp:
        (WebHTMLRepresentation::elementDoesAutoComplete):


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

2008-10-22  Brent Fulgham  <bfulgham@gmail.com>

        Correct build regressions in Cairo port for Windows.
        http://bugs.webkit.org/show_bug.cgi?id=21724

        Reviewed by Adam Roben.

        * WebCore.vcproj/WebCore.vcproj:  Fixed include paths and post-build event for the Debug_Cairo and Release_Cairo configurations.
        * platform/graphics/win/GraphicsContextCairoWin.cpp:
        (WebCore::GraphicsContext::GraphicsContext): Update to newer constructor signature.
        * platform/network/curl/DNSCurl.cpp: Added.
        (WebCore::prefetchDNS):
        * platform/network/curl/ResourceRequest.h:
        * platform/win/ScrollbarThemeWin.cpp:
        (WebCore::ScrollbarTheme::nativeTheme):

WebKit/win:

2008-10-22  Brent Fulgham  <bfulgham@gmail.com>

        Correct build regressions in Cairo port for Windows.
        http://bugs.webkit.org/show_bug.cgi?id=21724

        Reviewed by Adam Roben.

        * WebView.cpp:
        (WebView::notifyPreferencesChanged): Don't try to call
        setShouldPaintNativeControls when SafariTheme support is disabled, as
        that function doesn't exist in that case.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37797 268f45cc-cd09-0410-ab3c-d52691b4dbfc
        Bring Windows Cairo Port's font handling in line with CG.
        http://bugs.webkit.org/show_bug.cgi?id=21812.

        Reviewed by Adam Roben.

        * platform/graphics/win/FontCacheWin.cpp:
        (WebCore::createGDIFont): Remove unnecessary special-case for Cairo
        TrueType font search. It should match CG in all font selections.

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

2008-10-22  Darin Adler  <darin@apple.com>

        Reviewed by Sam Weinig.

        - fix https://bugs.webkit.org/show_bug.cgi?id=21294
          Bug 21294: Devirtualize getOwnPropertySlot()

        A bit over 3% faster on V8 tests.

        * JavascriptCore.exp: Export leak-related functions..

        * API/JSCallbackConstructor.h:
        (JSC::JSCallbackConstructor::createStructureID): Set HasStandardGetOwnPropertySlot
        since this class doesn't override getPropertySlot.
        * API/JSCallbackFunction.h:
        (JSC::JSCallbackFunction::createStructureID): Ditto.

        * VM/ExceptionHelpers.cpp:
        (JSC::InterruptedExecutionError::InterruptedExecutionError): Use a structure
        that's created just for this class instead of trying to share a single "null
        prototype" structure.

        * VM/Machine.cpp:
        (JSC::Machine::cti_op_create_arguments_no_params): Rename
        Arguments::ArgumentsNoParameters to Arguments::NoParameters.
        
        * kjs/Arguments.h: Rename the enum from Arguments::ArgumentsParameters to
        Arguments::NoParametersType and the value from Arguments::ArgumentsNoParameters
        to Arguments::NoParameters.
        (JSC::Arguments::createStructureID): Added. Returns a structure without
        HasStandardGetOwnPropertySlot since this class overrides getOwnPropertySlot.
        (JSC::Arguments::Arguments): Added an assertion that there are no parameters.

        * kjs/DatePrototype.h:
        (JSC::DatePrototype::createStructureID): Added. Returns a structure without
        HasStandardGetOwnPropertySlot since this class overrides getOwnPropertySlot.

        * kjs/FunctionPrototype.h:
        (JSC::FunctionPrototype::createStructureID): Set HasStandardGetOwnPropertySlot
        since this class doesn't override getPropertySlot.
        * kjs/InternalFunction.h:
        (JSC::InternalFunction::createStructureID): Ditto.

        * kjs/JSArray.h:
        (JSC::JSArray::createStructureID): Added. Returns a structure without
        HasStandardGetOwnPropertySlot since this class overrides getOwnPropertySlot.

        * kjs/JSCell.h: Added declaration of fastGetOwnPropertySlot; a non-virtual
        version that uses the structure bit to decide whether to call the virtual
        version.

        * kjs/JSFunction.h:
        (JSC::JSFunction::createStructureID): Added. Returns a structure without
        HasStandardGetOwnPropertySlot since this class overrides getOwnPropertySlot.

        * kjs/JSGlobalData.cpp:
        (JSC::JSGlobalData::JSGlobalData): Initialize new structures; removed
        nullProtoStructureID.
        * kjs/JSGlobalData.h: Added new structures. Removed nullProtoStructureID.

        * kjs/JSGlobalObject.h:
        (JSC::JSGlobalObject::createStructureID): Added. Returns a structure without
        HasStandardGetOwnPropertySlot since this class overrides getOwnPropertySlot.

        * kjs/JSNotAnObject.h:
        (JSC::JSNotAnObjectErrorStub::JSNotAnObjectErrorStub): Use a structure
        that's created just for this class instead of trying to share a single "null
        prototype" structure.
        (JSC::JSNotAnObjectErrorStub::isNotAnObjectErrorStub): Marked this function
        virtual for clarity and made it private since no one should call it if they
        already have a pointer to this specific type.
        (JSC::JSNotAnObject::JSNotAnObject): Use a structure that's created just
        for this class instead of trying to share a single "null prototype" structure.
        (JSC::JSNotAnObject::createStructureID): Added. Returns a structure without
        HasStandardGetOwnPropertySlot since this class overrides getOwnPropertySlot.

        * kjs/JSObject.h:
        (JSC::JSObject::createStructureID): Added HasStandardGetOwnPropertySlot.
        (JSC::JSObject::inlineGetOwnPropertySlot): Added. Used so we can share code
        between getOwnPropertySlot and fastGetOwnPropertySlot.
        (JSC::JSObject::getOwnPropertySlot): Moved so that functions are above the
        functions that call them. Moved the guts of this function into
        inlineGetOwnPropertySlot.
        (JSC::JSCell::fastGetOwnPropertySlot): Added. Checks the
        HasStandardGetOwnPropertySlot bit and if it's set, calls
        inlineGetOwnPropertySlot, otherwise calls getOwnPropertySlot.
        (JSC::JSObject::getPropertySlot): Changed to call fastGetOwnPropertySlot.
        (JSC::JSValue::get): Changed to call fastGetOwnPropertySlot.

        * kjs/JSWrapperObject.h: Made constructor protected to emphasize that
        this class is only a base class and never instantiated.

        * kjs/MathObject.h:
        (JSC::MathObject::createStructureID): Added. Returns a structure without
        HasStandardGetOwnPropertySlot since this class overrides getOwnPropertySlot.
        * kjs/NumberConstructor.h:
        (JSC::NumberConstructor::createStructureID): Ditto.
        * kjs/RegExpConstructor.h:
        (JSC::RegExpConstructor::createStructureID): Ditto.
        * kjs/RegExpObject.h:
        (JSC::RegExpObject::createStructureID): Ditto.
        * kjs/StringObject.h:
        (JSC::StringObject::createStructureID): Ditto.

        * kjs/TypeInfo.h: Added HasStandardGetOwnPropertySlot flag and
        hasStandardGetOwnPropertySlot accessor function.

JavaScriptGlue:

2008-10-22  Darin Adler  <darin@apple.com>

        Reviewed by Sam Weinig.

        - fix https://bugs.webkit.org/show_bug.cgi?id=21294
          Bug 21294: Devirtualize getOwnPropertySlot()

        * JSRun.cpp:
        (JSGlueGlobalObject::JSGlueGlobalObject): Moved constructor here.
        Set up flags in its new location in global object data, and set up
        a structure for UserObjectImp too.
        (JSRun::JSRun): Added code to give the JSGlueGlobalObject its own unique
        structure, rather than using the default one from JSGlobalObject.

        * JSRun.h: Made JSGlueGlobalObject take a structure ID. Also moved
        the data into a separate data object. And added userObjectStructure,
        a Structure to be used by UserObjectImp.

        * JSUtils.cpp: Removed unused sharedGlobalData global.
        (JSObjectKJSValue): Pass Structure in when creating UserObjectImp.
        (unprotectGlobalObject): Use JSGlueGLobalObject type specifically.
        (initializeGlobalObjectKey): Removed code to set up unused sharedGlobalData.
        (getThreadGlobalObject): Added. Shared by JSObjectKJSValue and
        getThreadGlobalExecState. Also now passes in a structure ID when creating
        the global object.
        (getThreadGlobalExecState): Changed to call getThreadGlobalObject.

        * UserObjectImp.cpp:
        (UserObjectImp::UserObjectImp): Changed to take a structure.
        * UserObjectImp.h:
        (UserObjectImp::createStructureID): Added. Returns a structure without
        HasStandardGetOwnPropertySlot since this class overrides getOwnPropertySlot.

WebCore:

2008-10-22  Darin Adler  <darin@apple.com>

        Reviewed by Sam Weinig.

        - fix https://bugs.webkit.org/show_bug.cgi?id=21294
          Bug 21294: Devirtualize getOwnPropertySlot()

        * bindings/js/JSDOMWindowShell.h:
        (WebCore::JSDOMWindowShell::createStructureID): Added. Returns a structure without
        HasStandardGetOwnPropertySlot since this class overrides getOwnPropertySlot.

        * bindings/js/JSInspectorCallbackWrapper.cpp:
        (WebCore::JSInspectorCallbackWrapper::wrap): Change to use a unique structure
        for this class rather than sharing nullProtoStructureID, which no longer exists.

        * bindings/js/JSNamedNodesCollection.h:
        (WebCore::JSNamedNodesCollection::createStructureID): Added. Returns a structure without
        HasStandardGetOwnPropertySlot since this class overrides getOwnPropertySlot.
        * bindings/js/JSRGBColor.h:
        (WebCore::JSRGBColor::createStructureID): Ditto.

        * bindings/scripts/CodeGeneratorJS.pm: Added createStructureID functions for the wrappers,
        constructors, and prototypes in any case where they override getOwnPropertySlot, without
        HasStandardGetOwnPropertySlot.

        * bridge/objc/objc_runtime.h:
        (JSC::Bindings::ObjcFallbackObjectImp::createStructureID): Added. Returns a structure
        without HasStandardGetOwnPropertySlot since this class overrides getOwnPropertySlot.
        * bridge/qt/qt_runtime.h:
        (JSC::Bindings::QtRuntimeMethod::createStructureID): Ditto.
        * bridge/runtime_array.h:
        (JSC::RuntimeArray::createStructureID): Ditto.
        * bridge/runtime_method.h:
        (JSC::RuntimeMethod::createStructureID): Ditto.
        * bridge/runtime_object.h:
        (JSC::RuntimeObjectImp::createStructureID): Ditto.



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

2008-10-22  David Smith  <catfish.man@gmail.com>

        Reviewed by andersca.
               
        https://bugs.webkit.org/show_bug.cgi?id=19974
        getElementsByClassName not live enough

        Test: fast/dom/getElementsByClassName/015.html

        * dom/StyledElement.cpp:
        (WebCore::StyledElement::classAttributeChanged): call dispatchSubtreeModifiedEvent()

LayoutTests:

2008-10-22  David Smith  <catfish.man@gmail.com>

        Reviewed by andersca.
        
        https://bugs.webkit.org/show_bug.cgi?id=19974
        getElementsByClassName not live enough

        * fast/dom/getElementsByClassName/015-expected.txt: Added.
        * fast/dom/getElementsByClassName/015.html: Added.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37800 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2008-10-22  Mike Pinkerton  <pinkerton@chromium.org>

        Reviewed by Dan Bernstein.
        Landed and tweaked a bit by Darin Adler.

        - fix https://bugs.webkit.org/show_bug.cgi?id=21809

        Remove PLATFORM(MAC) wrapping USE(ATSUI). It's redundant and inhibits 
        its use for PLATFORM(CHROMIUM) in the future.

        * platform/graphics/SimpleFontData.h:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37801 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2008-10-22  Cameron Zwarich  <zwarich@apple.com>

        Reviewed by Kevin McCullough.

        Check in changed test results for r37792.

        * fast/dom/Window/window-properties-expected.txt:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37802 268f45cc-cd09-0410-ab3c-d52691b4dbfc
        Bug 21781: WebCore::Settings should have a maximum decoded image size setting

        <https://bugs.webkit.org/show_bug.cgi?id=21781>

        Reviewed by Antti.

        No tests since there is no change in behavior.

        * loader/CachedImage.cpp:
        (WebCore::CachedImage::maximumDecodedImageSize): Added.  Returns
        WebCore::Settings::maximumDecodedImageSize() or 0 on error.
        (WebCore::CachedImage::data): Flag an error if the image being
        loaded is too big.
        * loader/CachedImage.h:
        (WebCore::CachedImage::maximumDecodedImageSize): Added declaration.
        * page/Settings.cpp:
        (WebCore::Settings::Settings): Initialize m_maximumDecodedImageSize
        to the maximum value of size_t.
        * page/Settings.h:
        (WebCore::Settings::setMaximumDecodedImageSize): Added method.
        (WebCore::Settings::maximumDecodedImageSize): Ditto.

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