10.3.1 beta release notes
Momentics IDE for BlackBerry

Momentics IDE for BlackBerry provides the development and testing environment and tools that you need to develop great apps. Check out the beta release notes.
BlackBerry 10 Device Simulator

The BlackBerry 10 Device Simulator allows you to simulate the BlackBerry 10 OS environment to help you develop your app. Take a look at the release notes.
Plug-in for Microsoft Visual Studio

Do you want to develop your app in Microsoft Visual Studio? You can use the BlackBerry Native Plug-in for Microsoft Visual Studio. Take a look at the release notes.
The BlackBerry 10 Native SDK and the Momentics IDE for BlackBerry are available as separate releases, so their version numbers are distinct. The Native SDK provides all of the libraries that you need to create your apps, while the Momentics IDE provides the development and testing environment that brings it all together.
To make it easy to download the tools that you need, the BlackBerry 10 Native SDK is installed separately from the Momentics IDE. When you start the Momentics IDE, you can download and install the BlackBerry 10 Native SDK from within the IDE.
Cascades and Core release notes
Highlights

Dynamic design units

Support for new devices

PIM
Dynamic design units are a way to help your app adapt to changes in information density (for example, changes to the system font size). To implement dynamic design units, just integrate the dduFactor property into your existing design unit calculations. For more information, see Design units.
There are lots of new features to support the BlackBerry Classic and BlackBerry Passport devices. For example, you can customize the BlackBerry Classic navigation keys and you can capture the touch-sensitive keyboard events on the BlackBerry Passport. For more information, see New in this release.
Some new features have been added to the personal information management (PIM) APIs, including calendar reminders, contact folders, out-of-office settings, and updates to notebook entries. For more information, see Personal information management.
New in this release
Cascades | Core
Cascades UI framework
BlackBerry Classic: Trackpad
Cascades allows you to customize the behavior of trackpad navigation in several ways: you can set which control gets focus initially, customize the navigation path, and even change the highlight style. If you require more direct control over the trackpad, you can also handle trackpad events directly. The BlackBerry Classic also introduces four navigation keys that you can override behavior for: the Back, End, Send (also known as the Call key), and Menu keys.
For more information, see Trackpad input.
BlackBerry Passport: Touch-sensitive keyboard
The keyboard on the BlackBerry Passport is touch sensitive, meaning that it can recognize touch events and gestures in addition to key presses. You can capture touch-sensitive keyboard events by using the TouchKeyboardHandler in Cascades.
For more information, see Touch-sensitive keyboard input.
Effects
Added the following classes that allow you to set visual effects on images and controls to change their appearance. Use these effects to brighten, darken, or change the color intensity of your controls and images.
Events and input handling
Updated the following classes to support default actions, input sources, long press and tap events, focus changes, and action bars on devices with trackpads and physical keys:
- AbstractActionItem
- AbstractGestureEvent
- Control
- InputRouteProperties
- LongPressEvent
- Option
- Page
- TapEvent
Navigation
Added and updated the following function and classes to handle which controls should get focus when navigating using the trackpad or physical keys:
- Container::navigation()
- ContainerNavigation
- Navigation
- NavigationEvent
- NavigationHandler
- ChildrenNavigationBehavior
- ConsumeNavigationEvent
Cascades platform APIs
Hardware information
Added the following functions in the HardwareInfo class to determine whether a device has certain physical keys or a trackpad, which are features that are associated with the BlackBerry Classic:
- hasPhysicalBackButton(): Indicates whether the device has a Back key
- hasPhysicalMenuButton(): Indicates whether the device has a Menu key
- hasPhysicalPhoneKeys(): Indicates whether the device has Send and End keys
- isTrackpadDevice(): Indicates whether the device has a trackpad
Added the following classes:
- DeviceShortcut: Represents a shortcut that can be invoked by a control
- DeviceShortcuts: Enumerates the possible device shortcuts
Permissions
Added the following features to permissions:
- Phone Call Details and Phone Call Logs permissions are available as check boxes on the Application tab of the bar-descriptor.xml file.
- Push and Run in Background permissions are no longer restricted and are granted to all developers by default.
- Permissions no longer persist when a user uninstalls your app. The permissions that the user previously granted to your app are removed. The user is prompted to provide permissions when your app is reinstalled.
For more information, see Available permissions.
Personal information management (PIM)
Added the following features to the PIM APIs:
- Calendar: You can now set and update reminders for calendar events (including default reminders), as well as reminders for all-day meetings. You can also listen for changes to the default calendar folder.
- Contacts: Contact folders are now available, which let you sort contacts into folders that you can display in your apps. You can retrieve a list of contact folders from a particular account and choose whether these folders are synchronized with the account.
- Message: You can retrieve a preview of a message instead of the entire message, and you can set and retrieve classification information for a message. You can also perform bulk operations, such as deletion and marking as read, on messages and conversations. New out-of-office settings are available, which let you set and retrieve the text that internal and external recipients receive as out-of-office replies. Lastly, a new MIME type for Rich Communication Suite (RCS) messages has been added.
- Notebook: You can now set and retrieve recurrence properties for notebook entries.
Core | Cascades
BlackBerry Platform Services Library
Added support for system keys, which are the Send, Menu, Back, and End keys.
Invoke (navigator_invoke.h)
Updated the description of navigator_invoke_timer_registration_send() to emphasize that while specific timers are automatically deregistered when they expire, you must explictly deregister recurrence timers.
Navigator (navigator.h)
Added the following event code for system key presses:
- NAVIGATOR_SYSKEY_PRESS
Added the enumerated type navigator_syskey_t that contains these values that map to the system keys:
- NAVIGATOR_SYSKEY_SEND
- NAVIGATOR_SYSKEY_END
- NAVIGATOR_SYSKEY_BACK
For more information, see BlackBerry Platform Services Library.
Credential Manager Library
The Credential Manager Library provides an interface to use the Credential Manager service, which supports password-based and certificate-based credentials.
For more information, see Credential Manager Library.
Documentation
Multimedia
This release adds the ability to switch audio tracks in supported file formats, and mm-renderer publishes track-specific metadata for audio, video, and subpicture tracks. The mm-renderer documentation includes the new section Parameters for mm-renderer and updates Playing media with information about metadata and how to switch tracks.
The Dictionary Object Library has been moved out of the Multimedia section and into its own section of the site.
For more information, see Multimedia renderer.
Wi-Fi service
The new Wi-Fi service document demonstrates how to receive Wi-Fi events and how to use the Wi-Fi aggregator capability. For more information, see Wi-Fi service.
Multimedia Renderer Event API
Added the mmr_metadata_split() function.
For more information see, Multimedia Renderer Event API.
OpenMAX AL
The OpenMAX AL APIs are now available. For more information, see OpenMAX AL.
Scoreloop Library
The Scoreloop Library is no longer supported. Apps should not use any Scoreloop libraries or dependencies.
Smart Card Library
SmartCardCryptoProvider.hpp
Added the following C++ functions to support key generation and management:
sc_crypto_system.h
Added the following functions:
sc_smart_card.h
Added the following functions that support key generation and management:
Support for BlackBerry Classic
Trackpad
The Screen API exposes trackpad events as SCREEN_EVENT_JOYSTICK events that you can listen for and respond to in your apps. For more information, see Trackpad input.
Navigation keys
You can override the behavior for the BlackBerry Classic navigation keys. For more information, see BlackBerry Classic navigation keys.
Support for BlackBerry Passport
The keyboard on the BlackBerry Passport is touch sensitive, meaning that it can recognize touch events and gestures in addition to key presses. You can capture touch-sensitive keyboard events by using the SCREEN_EVENT_MTOUCH_EVENT session from Screen. For more information, see Touch-sensitive keyboard input.
VPN Extensions Library
vpn_ext_api.h
Added the following function:
- vpn_ext_register_service_no_deamon()
Changes in this release
Cascades | Core
Documentation
Near Field Communication
Near Field Communication has been updated to include a description of NFC concepts and supported NFC functionality. It also includes an overview of the NFC C API. For more information, see Near Field Communication.
Cascades UI framework
Contact pickers
Added the function selectedContactAttributes() and the signal contactAttributesSelected() that allow you to find the list of contact attributes that were selected by the user. For more information, see ContactPicker.
Foreign window
Added functions and signals that allow you to manage input events that should be forwarded to the bound screen window when the foreign window control is in focus. For more information, see ForeignWindowControl.
UI configuration
Updated the following classes:
- UIconfig: Supports dynamic design units and scale factors that depend on the information density context
- UIPalette: Supports a new primary dark color and secondary text colors
Web
The WebSettings class provides new functions to determine whether spatial navigation should be used to interact with a WebView when the user is using a trackpad. Spatial navigation is disabled by default because it is not supported for all web content. When spatial navigation is enabled, a highlight can be used to interact with elements on the webpage by using the trackpad. The spatialNavigationEnabledChanged() signal is emitted when spatial navigation is enabled or disabled.
The WebPage class provides two new functions that exit full screen mode and hide dialog webpages. Usually the user performs these actions by pressing buttons on the webpage. These functions allow you to programmatically perform these actions in your app.
The shareTextAction() function has been added, which allows you to share the selected text using the invocation framework when triggered. For more information, see WebPage.
Core | Cascades
Documentation
Near Field Communication
The Near Field Communication documentation has been updated to include an overview of the Cascades NFC API.
NFC Library
nfc.h
- Updated the following functions to include the difference between feature sets:
- nfc_tag_transceive()
- nfc_hce_register_aid()
nfc_se_access.h
- Updated the following functions:
- nfc_se_register_aid()
- nfc_se_reader_set_technology_types()
OpenSSL
Updated OpenSSL to address the issues from the August 6, 2014 OpenSSL Security Advisory:
- Information leak in pretty printing functions (CVE-2014-3508)
- Crash with SRP ciphersuite in Server Hello message (CVE-2014-5139)
- Race condition in ssl_parse_serverhello_tlsext (CVE-2014-3509)
- Double Free when processing DTLS packets (CVE-2014-3505)
- DTLS memory exhaustion (CVE-2014-3506)
- DTLS memory leak from zero-length fragments (CVE-2014-3507)
- OpenSSL DTLS anonymous EC(DH) denial of service (CVE-2014-3510)
- OpenSSL TLS protocol downgrade attack (CVE-2014-3511)
- SRP buffer overrun (CVE-2014-3512)
Fixed in this release
Cascades | Core
Cascades platform APIs
JI: 709268
A headless app triggered by a recurrent rule with a count limit was triggered one more time than the count limit.
JI: 701824The headless app trigger for a recurring timer did not work as expected.
JI: 581431On some BlackBerry Z3 devices, the displayName() function in the DisplayInfo class may not have displayed the name properly.
JI: 449170If you were using a GeoPolygon, inner boundaries didn't render.
Cascades UI framework
JI: 705782
If you entered an existing chat on some devices, the text focus was not automatically set to the input field.
JI: 700238On some devices, if you set the device language to any right-to-left language and entered text in a message, the text may not have displayed properly.
JI: 689059If you launched an app in portrait mode and swiped down to view the application menu, then switched to landscape mode and swiped down again, the number of menu items may have been different.
JI: 659080When you started the Pictures app for the first time, you may have seen black rectangles in the list of images.
JI: 580371If you had a FlowListLayout or GridListLayout list with three or more columns and emitted an itemsChanged() signal, then the list may have jumped to the top.
Core | Cascades
Camera
JI: 591369
If the battery level was below 3300 mV, the flash still flashed.
Documentation
JI: -
The SCREEN_PROPERTY_GESTURE_RECOGNITION property was included in the documentation but was not available for use.
JI: 492681In the Camera Library offline documentation, the following functions and data type should not have been included:
- camera_get_supported_video_vf_modes()
- camera_get_video_vf_mode()
- camera_set_video_vf_mode()
- camera_video_vf_modes_t
General
JI: 702478
While recurrent timers supported a time granularity measured in seconds, the navigator APIs supported only a granularity measured in minutes.
JI: 633678Sometimes an email sent from Microsoft Outlook might have been received with errors in the message.
JI: 615489In some cases, your device might have reset unexpectedly when you tried to answer an incoming video chat call from a BlackBerry PlayBook tablet.
JI: 606281If you tried to listen to radio station 108.0, you got an error.
JI: 547323While watching a video file, if there is considerable jiggling of the wires, the volume increased and you couldn't turn it down.
Known issues
Cascades | Core
BBM Social Platform
JI: 389356 JI: 389093
When the Connect to BBM permission (Settings > Security and Privacy > Application Permissions) is toggled from enabled to disabled or from disabled to enabled, the registration and permission states are not updated.Workaround: Restart the app if permissions have been modified.
Cascades platform APIs
JI: 749705
When using the BlackBerry 10 Device Simulator to emulate the BlackBerry Classic, if you query the resolution and physical dimension using the DisplayInfo class, incorrect results are returned.
JI: 721991When connected to a secondary display, pixel size is locked to the framebuffer, so the pixelSizeChanged() signal is never emitted.
JI: 720787If you query the pixel size using the DisplayInfo class with a disconnected secondary display port, the framebuffer size is returned instead of (0,0).
JI: 708274If you connect a device using WifiDirectIntent::GroupOwner (or WifiDirectIntent::Client), then the mismatched network role WiFiDirectRole::Client (or WiFiDirectRole::GroupOwner) is returned.
JI: 689088Using the WiFiDirect class, if you call cancelConnectRequest(), requestStartSession(), or requestStopSession(), store the return value in a variable in QML, and then display the store value, the variable is displayed as undefined.
JI: 677902A BadRequest error message is returned by InvokeReply when registerTimer() is called with an incorrect target defined in the bar-descriptor.xml file.
JI: 676677A BadRequest error message is returned by InvokeReply when deregisterTimer() is called with an unregistered timer ID.
JI: 632555The captureDisplay() function does not display the Permission Required dialog box and returns PermissionDenied when using the simulator.
JI: 624014The SystemProgressToast::autoUpdateEnabled property is not available in the bb.system 1.2 library when using the simulator.
JI: 614953The AutoCapitalize value doesn't work for the inputField of a SystemPrompt dialog box.
JI: 591348When you restart your device, a system-started headless app fails to fire notifications intermittently.
JI: 567242If you perform a Box2Box transfer of a folder using InvokeManager, the folder is changed into a file and then transferred.
JI: 567047The Push Service does not work on the simulator.
JI: 549616The Smart Card API allows you to register Application Type and not just Headless and Service Type.
JI: 534927When using an SKU to purchase an item, the purchase receipt shows an empty digital good ID.
JI: 505518If you connect a device using the WiFiDirectIntent::GroupOwner, a signal is emitted by WiFiDirect with the parameter intent = WiFiDirectIntent::Any instead of intent = WiFiDirectIntent::GroupOwner.
JI: 481294If you have a headless app that detects SMS and geofencing triggers, the app still gets invoked even if the permissions are disabled.
JI: 480352Invoking a video chat such as BBM Video from a headless app brings the UI to the foreground.
JI: 468275Opening a large number of cards can cause the device to become unresponsive.
JI: 449197GeoPolylines and GeoPolygons don't render if they cross 0, 180, or -180 degrees longitude or latitude.
JI: 449189Dotted and dashed edge styles don't render when you're using GeoDeviceLocation.
JI: 449188Dotted and dashed edge styles don't render when you're using GeoPolygon.
JI: 389904When reading a URI tag that contains "pin", the BBM app doesn't handle the content of the tag, but the Smart Tags app does and invokes the URI.
JI: 284877An established TCP connection over the cellular network interface fails when Wi-Fi is enabled on a device that is initially connected to a mobile network with Wi-Fi disabled.
JI: 150783There is missing documentation on QtNfcSubset classes including some enumerations and constructors in QNdefRecord, QNdefMessage, QNdefNfcSmartPosterRecord, QNdefNfcTextRecord, and QNdefNfcUriRecord.
JI: 150357The ArrayDataModel::move() function does not work as expected.
JI: 149929When you set a URL property for a QML object, file paths are case-sensitive when they should be case-insensitive. For example, “FILE:app/native/assets/contacts.json” and “file:app/native/assets/contacts.json” should be treated the same, but are not. Also, a URL that’s defined in QML may result in a URL that has part of the path duplicated.
JI: 146568In QML, the connect keyword cannot be used to connect the touch() signal of a Control to a function.
JI: 144760The ArrayDataModel::indexOf() function sometimes returns 3 in cases where it should return -1.
JI: 86080On the BlackBerry 10 Device Simulator, if you connect the windowGroupInvisible() and processStateChanged() signals and then minimize the app, neither signal is emitted.
JI: 85749InvokeRequest::setMetaData() doesn't work correctly if a QByteArray as part of the QVariantMap is passed in.
JI: 85463When using cards in an app that is run on the BlackBerry 10 Device Simulator, rotating the simulator may cause the UI to become distorted.
JI: 84881When you add a custom URI to an InvokeTargetFilter and then retrieve the list of custom attributes, the size of the custom attribute list is reported as 0. The documentation does not specify that the returned size will be 0.
Cascades UI framework
JI: 694886
In QListDataModel and ArrayDataModel, the signals itemAdded() and itemRemoved() are no longer sent when an item is moved. The new signal itemMoved() is sent instead.
JI: 388259When you have a WebView and call storage()->clear(), the WebView storage is not cleared. Workaround: Use a render fence to set up WebView storage after the WebView has been rendered.
JI: 381511When the keyboard is displayed in an app (for example, if a user taps a text field), the transition of the page content is not in sync with the appearance transition of the keyboard.
JI: 381185When calling clear() on an empty ArrayDataModel, the itemsChanged() signal is emitted.
JI: 381402StandardListItem renders text from right-to-left languages left justified.
JI: 150377When creating CustomControl objects, the Container that is set as the root is being wrapped by a phantom Control.
JI: 149804Using a DropDown control and trying to remove the option at index 0 while the option at index 1 is selected may cause the app to terminate unexpectedly.
JI: 149613Calling QmlDocument::create() in a non-Cascades app may cause the app to terminate unexpectedly.
JI: 149509The setKey() function in the Shortcut class can erroneously accept invalid strings (for example, strings that don't correspond to an acceptable shortcut).
JI: 148647If an implicit or explicit animation occurs immediately after an orientation change of the device, the animation does not play but instead jumps to its final position. For example, this issue may occur if animations are started from the rotationCompleted() or orientationChanged() signals.
JI: 148249When a ListView control's flick mode is set to a non-default value and a slot function is connected to the flickModeChanged() signal, calling the resetFlickMode() function doesn't set the flick mode back to the default value and no signal is emitted.
Core | Cascades
API reference versions
JI: -
In the C Library, some of the "Since" sections may not reflect the correct API level. This will be resolved in a future release.
Documentation
JI: -
We are hard at work creating an awesome UI experience for you! While we are doing this, some references to the BlackBerry 10 UI, including screenshots, may not reflect what you see in the current software.
JI: -In previous releases, the most recent version of the BlackBerry Platform Services library (libbps) was bundled with the Native SDK. This version was newer than the version on the target OS. To ensure the correct BPS library version was used by applications at run-time, projects in the Native SDK 1.0 would:
- Use BPS headers from the $QNX_TARGET/../target-override location for compilation,
- Link the libbps.so from the $QNX_TARGET/../target-override location to generate the application executable, and
- Package the libbps.so from the $QNX_TARGET/../target-override location in the BAR.
As of the Native SDK 2.0.0 release, BPS no longer resides in the target-override location. The BlackBerry 10 OS and BlackBerry 10 Native SDK versions of this library are in sync. If you have applications targeting BlackBerry 10 that you no longer want to support on PlayBook 1.0.x, you should remove the libbps.so.1 asset from bar-descriptor.xml and target the BlackBerry 10 version of the Native SDK. To verify, select the QNX page in the project properties dialog box. Otherwise, packaging of the BAR file will fail because it will not be able to find the libbps.so file to include in the BAR.
JI: 393737The BlackBerry 10 Native SDK documentation may not appear in Dynamic Help in the Momentics IDE. To access help topics from Dynamic Help, right-click a topic and click Open in Help Contents. Alternatively, you can always access the documentation by clicking Help > Help Contents in the IDE or by visiting the Documentation website.
General
JI: 616187
When you open an email, the time and date information overlap the sender's name.
JI: 578240Sending a URL that ends with a closing bracket ')' or is followed by punctuation is not parsed correctly.
JI: 450995If you save an EAS contact to your contact list and change the name, and you send an email to that contact, the name might change to the global name in the BlackBerry Hub.
Headless apps
JI: 709026
If you are using the headless app template, the headless app can't be started in Run-Release mode, because this mode requires a signed .bar file with the _sys_headless_nostop permission. However, you can still test a headless app in Device-Debug mode and apply for signing keys with that special permission and get your app signed once you're at the publishing stage.
Installation
JI: 394200
When you perform a software update, you must accept the security warning about installing unsigned software and continue the installation.
OpenAL
JI: 403249
When using OpenAL to play sound on the device and an HDMI cable is plugged in, the sound does not transfer on to the connected device.
Known limitations
Cascades | Core
BBM Social Platform
Apps installed in the work space cannot access the BBM Social Platform. To connect to BBM, your app must be installed in the personal space.
When you retrieve the version number of the BBM Social Platform library that is running on a contact's device, the value returned might be unreliable if the device is running BlackBerry 10 OS version 10.2 or later.
Cascades Exporter plug-in for Adobe Photoshop
Cascades Exporter is not supported with Adobe Photoshop CC 2014 and later.
When using Cascades Exporter with an installation of Adobe Photoshop that uses French as the default language, a "Problem null" dialog box might be displayed when you export a project, indicating that the export process fails.
QRC-based resources
If you are using QRC to improve performance in your apps, the new asset selection tool may affect your apps. If asset selection is used, an index file is generated automatically. However, this index file does not include contents that are only included in the QRC binary file. Instead, it lists only the files that reside in the assets directory in your project.
Workaround: Place a copy of QRC-compiled assets in your assets directory. The tool will then include these assets in the index file. When the device loads the app, the appropriate files in the binary are still used and the app continues to benefit from the performance gain of QRC.
Viewers in the invocation framework
Using the invocation framework, viewer-related classes (for example, InvokeViewerMessage and InvokeViewerRequest) and functions have been deprecated. The viewer-related classes and functions have been replaced by Card classes and functions. For more information on the Cards API, see Cards.
Core | Cascades
BlackBerry ID and Signing Authority linking
If you do not register your signing key and your BlackBerry PlayBook debug token with the same client ID, an error will be thrown when you try to link your BlackBerry ID account with a Signing Authority account. A fix will be available in a subsequent release.
FreeType
Applications using FreeType must add the following include path: $QNX_TARGET/usr/include/freetype2
Multimedia
If an app plays a media stream that's encrypted, the app won't allow video playback if an HDMI display is connected, due to security restrictions. This limitation will be resolved in a subsequent release.
There is a slight delay between tracks played as part of a playlist (approximately 0.5 seconds), even when the playlist includes only one track that is repeating.
OpenAL
- The OpenAL 1.1 Specification and Reference incorrectly states that the function alcCloseDevice() will fail if the device's contexts and buffers have not been destroyed. alcCloseDevice() actually destroys any contexts and buffers still associated with the device.
- The function alcGetIntegerv() does not throw an error when retrieving ALC_MAJOR_VERSION and passing an invalid device pointer.
- The function alcGetString(device, ALC_CAPTURE_DEFAULT_DEVICE_SPECIFIER) throws an error when invoked after the device has been closed. It should return the default device and ignore the device parameter.
- The OpenAL 1.1 Specification and Reference incorrectly states in the description of the function alcGetString(), "Specifying NULL for deviceHandle when asking for ALC_EXTENSIONS will generate an ALC_INVALID_DEVICE error." In fact, no error is generated.
- The OpenAL 1.1 Specification and Reference incorrectly states in the description of the function alBufferData() that, "An invalid size will result in an AL_INVALID_VALUE error." In fact, calling alBufferData() with an invalid size does not cause the INVALID_VALUE error.
- When the function alcMakeContextCurrent() is called with an uninitialized ALCcontext pointer, it correctly returns ALC_FALSE, but does not generate an ALC_INVALID_CONTEXT error.
- The OpenAL Programmer's Guide - OpenAL Versions 1.0 and 1.1 incorrectly lists AL_INVALID_VALUE as a possible error returned by the functions alGenBuffers() and alGenSources() when the array is not large enough to hold the number of items requested. In fact, no error is generated.
- The function alSource3f() does not throw an AL_INVALID_VALUE error when invalid numbers are passed as parameters. Apps should perform their own validity checking.
- The function alSourcef() throws an AL_INVALID_VALUE error for valid values when using AL_CONE_INNER_ANGLE and AL_CONE_OUTER_ANGLE.
- No error is thrown when the function alutLoadWAVFile() is called without a current context.
- The function alutGetError() does not return ALUT_ERROR_ALC_ERROR_ON_ENTRY when there was already an ALC error on entry to alutLoadMemoryFromFileImage().
- In the OpenAL Programmers Guide, AL_DATA is incorrectly documented as a valid buffer property. An attempt to retrieve this property through alGetBufferi() and alGetBufferiv() will result in an AL_INVALID_ENUM error.
- The deprecated function alutLoadWAVMemory() does not return the expected values.
- The function alGetListenerfv() does not generate an error when called with an invalid value. Apps should perform their own validity checking.
- The following attributes are set by the device and cannot be altered using the attribute list of the function alcCreateContext(): ALC_FREQUENCY, ALC_REFRESH, ALC_SYNC, ALC_MONO_SOURCES, ALC_STEREO_SOURCES, and ALC_MAX_AUXILIARY_SEN.
- The OpenAL 1.1 Specification and Reference incorrectly states that the function alGetEnumValue() sets the error code AL_INVALID_VALUE if the specified enumeration cannot be found. In fact, this error is not set when an invalid enumeration value is specified.
- The OpenAL Programmer's Guide - OpenAL Versions 1.0 and 1.1 incorrectly states that the functions alcSuspendContext() and alcProcessContext() produce the error ALC_INVALID_CONTEXT when called with a null or destroyed context. However, no error is generated.
- The function alListener3f() does not generate an error when called with a NULL value for the AL_VELOCITY attribute. Apps should perform their own validity checking.
- The function ALCGetProcAddress() does not return addresses for the specified context extension functions, even for valid functions. It always returns NULL.
- The function alSourceQueueBuffers() queues invalid buffers. If you pass a NULL buffer to this function, it will queue the buffer and not raise an error, even though the buffer is not valid.
OpenSSL
BlackBerry 10 uses OpenSSL 1.0.1, with the following deviations from the standard implementation:
- TLSv1.1 and TLSv1.2 support is disabled by default.
- The heartbeat TLS extension has been disabled. This extension is described by RFC 6520, which is located at http://www.rfc-editor.org/rfc/rfc6520.txt.
- The list of default SSL/TLS/DTLS ciphersuites has been altered.
- Applications using SSL/TLS/DTLS connections get a default set of ciphersuites unless they explicitly specify which ciphersuites they want to support using SSL_CTX_set_cipher_list() or SSL_set_cipher_list().
- The default set of ciphersuites has been changed to "ALL:!aNULL:!eNULL:!SRP:!SSLv2" which eliminates the SRP ciphersuites from the standard default set of ciphersuites provided by OpenSSL 1.0.1.
- SSL_CTX_new(), which is used to create a new SSL_CTX object for TLS/SSL/DTLS negotiations, has been altered to disable TLSv1.1 and TLSv1.2 support by automatically setting the option SSL_OP_NO_TLSv1_1 and SSL_OP_NO_TSLv1.2.
- TLSv1.1 and TLSv1.2 will be disabled by default when using SSLv23_method(), SSLv23_server_method(), or SSLv23_client_method(). Applications that need TLSv1.1 support can clear the SSL_OP_NO_TLSv1_1 option by calling SSL_CTX_clear_options(ctx, SSL_OP_NO_TLSv1_1) or can use one of the following TLSv1.1-only methods: TLSv1_1_method(), TLSv1_1_server_method(), or TLSv1_1_client_method(). Applications that need TLSv1.2 support can clear the SSL_OP_NO_TLSv1_2 option by calling SSL_CTX_clear_options(ctx, SSL_OP_NO_TLSv1_2) or can use one of the following TLSv1.2-only methods: TLSv1_2_method(), TLSv1_2_server_method(), or TLSv1_2_client_method().
Payment Service
When you use the BlackBerry 10 Device Simulator to test your apps, your apps cannot communicate with the BlackBerry World servers to test certain Payment Service features. To test Payment Service features on the simulator, you should use Local Mode testing.
If you need to test your apps by interacting with the BlackBerry World servers, you need to run the app on a physical device and use a BlackBerry ID in sandbox mode. For more information about testing apps that use the Payment Service, see Testing in-app purchases.
Previous release notes
Cascades
Core
Native SDK 10.3 Release Notes
- 10.3 Gold release notes (Gold - posted June 17, 2014)
- 10.3 beta release notes (Beta - posted May 15, 2014)
Native SDK 10.2 Release Notes
- 10.2.1 Gold release notes (Gold - posted Dec 23, 2013)
- 10.2 Gold release notes (Gold - posted Aug 14, 2013)
- 10.2 Beta release notes (Beta - posted June 12, 2013)
Native SDK 10.1 Release Notes
- For target 10_1_0_1627 (Update 2 - posted May 1, 2013)
- For target 10_1_0_1483 (Update 1 - posted April 25, 2013)
- For target 10_1_0_1020 (Gold Release - posted March 22, 2013)
- For target 10_1_0_807 (Beta 2 - posted March 8, 2013)
- For target 10_1_0_338 (Beta 1 - posted February 6, 2013)
Native SDK 10.0 Release Notes
- For target 10_0_9_2709 (Update 3 - posted March 22, 2013)
- For target 10_0_10_672 (Update 2 - posted February 21, 2013)
- For target 10_0_10_261 (Update 1 - posted January 30, 2013)
- For target 10_0_9_2372 (Gold Release - posted January 10, 2013)
Last modified: October 06, 2014