[iOS] Get code to compile on older iOS versions
https://bugs.webkit.org/show_bug.cgi?id=130142
<rdar://problem/16302908>

Reviewed by Darin Adler.

Source/WebCore:

* WebCore.exp.in:
* platform/ios/WebVideoFullscreenControllerAVKit.mm:
(-[WebVideoFullscreenController WebCore::]):
(-[WebVideoFullscreenController enterFullscreen:]):
(-[WebVideoFullscreenController exitFullscreen]):
* platform/ios/WebVideoFullscreenInterfaceAVKit.h:
* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
* platform/mac/HTMLConverter.mm:
(_dateForString):
* platform/network/cf/CookieJarCFNet.cpp:
(WebCore::copyCookiesForURLWithFirstPartyURL):
* platform/text/ios/LocalizedDateCache.mm:
(WebCore::LocalizedDateCache::calculateMaximumWidth):
* platform/text/mac/LocaleMac.mm:
(WebCore::LocaleMac::LocaleMac):

Source/WebKit/mac:

* History/WebHistory.mm:
(getDayBoundaries):
* Plugins/WebPluginController.h:
* Plugins/WebPluginController.mm:
(+[WebPluginController plugInViewWithArguments:fromPluginPackage:]):
* WebCoreSupport/WebFrameLoaderClient.mm:
(pluginView):
* WebView/WebPreferences.mm:
(-[WebPreferences _setAllowCompositingLayerVisualDegradation:]):
* WebView/WebPreferencesPrivate.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@165944 268f45cc-cd09-0410-ab3c-d52691b4dbfc
https://bugs.webkit.org/show_bug.cgi?id=130494
EmptyUnique strings are Identifiers/Atomic

Reviewed by Geoff Garen.

EmptyUnique strings should set the Identifier/Atomic flag.

Source/JavaScriptCore: 

This fixes an unreproducible bug we believe exists in Identifier handling.
Expected behaviour is that while Identifiers may reference EmptyUniques
(StringImpls allocated as UIDs for PrivateNames), these are not created
through the main Identifier constructor, the Identifier flag is not set
on PrivateNames, and we should never lookup EmptyUnique strings in the
IdentifierTable.

Unfortunately that was happening. Some tables used to implement property
access in the JIT hold StringImpl*s, and turn these back into Identifiers
using the identfiier constructor. Since the code generator will now plant
by-id (cachable) accesses to PrivateNames we can end up passing an
EmptyUnique to Identifier::add, potentially leading to PrivateNames being
uniqued together (though hard to prove, since the hash codes are random).

* runtime/PropertyName.h:
(JSC::PropertyName::PropertyName):
(JSC::PropertyName::uid):
(JSC::PropertyName::publicName):
(JSC::PropertyName::asIndex):
    - PropertyName assumed that PrivateNames are not Identifiers - instead check isEmptyUnique().
* runtime/Structure.cpp:
(JSC::Structure::getPropertyNamesFromStructure):
    - Structure assumed that PrivateNames are not Identifiers - instead check isEmptyUnique().

Source/WTF: 

* wtf/text/AtomicString.h:
(WTF::AtomicString::add):
    - Previously we assumed the only StringImpl that was validly allowed to claim to be
      Atomic but not be in a table was the canonical empty string. Now that EmptyUniques
      are also marked Atomic, all empty strings may pass this condition.
* wtf/text/StringImpl.cpp:
(WTF::StringImpl::~StringImpl):
    - EmptyUnique strings are not in the Atomic/Identfiier tabels, so don't need removing.
* wtf/text/StringImpl.h:
(WTF::StringImpl::StringImpl):
    - Change EmptyUnique constructor to call hashAndFlagsForEmptyUnique.
* wtf/text/StringStatics.cpp:
(WTF::StringImpl::hashAndFlagsForEmptyUnique):
    - Allocate a sequential hash code (this should be just as good for distribution & better
      for debugging than the random value) and set flags, now including Atomic & Identifier.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@165946 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Refine BatteryStatus module
https://bugs.webkit.org/show_bug.cgi?id=130495

Reviewed by Andreas Kling.

Small refinements:
 - Return PassRef instead of PassRefPtr in create method
 - Switched to nullptr instead of 0 where appropriate.
 - Removed unused function and header file.
 - Removed unnecessary empty lines.

* Modules/battery/BatteryController.h:
* Modules/battery/BatteryManager.cpp:
(WebCore::BatteryManager::create): Make return passRef.
* Modules/battery/BatteryManager.h:
(WebCore::BatteryManager::batteryControllerDestroyed): Use nullptr.
* Modules/battery/BatteryStatus.cpp:
(WebCore::BatteryStatus::create): Make return passRef.
* Modules/battery/BatteryStatus.h:
* Modules/battery/NavigatorBattery.cpp:
(WebCore::NavigatorBattery::webkitBattery): Remove batteryManager().
* Modules/battery/NavigatorBattery.h:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@165950 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[CSSRegions] Content flowed in 0px height region not displayed
https://bugs.webkit.org/show_bug.cgi?id=98265

After the past work on overflow, this looks fixed. Add a test to make sure
we are covered for future regressions.

Reviewed by Andrei Bucur.

* fast/regions/overflow-content-zero-height-region-expected.html: Added.
* fast/regions/overflow-content-zero-height-region.html: Added.


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