- Revision
- 124338
- Author
- [email protected]
- Date
- 2012-08-01 09:15:05 -0700 (Wed, 01 Aug 2012)
Log Message
[BlackBerry] Allow client side to add and remove origin access whitelist entries
https://bugs.webkit.org/show_bug.cgi?id=92790
Reviewed by Yong Li.
PR: 172658
Add two new APIs to add and remove origin access whitelist entries.
Initialize the BlackBerryAllowCrossSiteRequests WebSetting to false.
* Api/WebPage.cpp:
(BlackBerry::WebKit::WebPagePrivate::addOriginAccessWhitelistEntry):
(WebKit):
(BlackBerry::WebKit::WebPage::addOriginAccessWhitelistEntry):
(BlackBerry::WebKit::WebPagePrivate::removeOriginAccessWhitelistEntry):
(BlackBerry::WebKit::WebPage::removeOriginAccessWhitelistEntry):
* Api/WebPage.h:
* Api/WebPage_p.h:
(WebPagePrivate):
* Api/WebSettings.cpp:
(BlackBerry::WebKit::WebSettings::standardSettings):
Modified Paths
Diff
Modified: trunk/Source/WebKit/blackberry/Api/WebPage.cpp (124337 => 124338)
--- trunk/Source/WebKit/blackberry/Api/WebPage.cpp 2012-08-01 15:57:44 UTC (rev 124337)
+++ trunk/Source/WebKit/blackberry/Api/WebPage.cpp 2012-08-01 16:15:05 UTC (rev 124338)
@@ -104,6 +104,7 @@
#include "ScriptSourceCode.h"
#include "ScriptValue.h"
#include "ScrollTypes.h"
+#include "SecurityPolicy.h"
#include "SelectionHandler.h"
#include "SelectionOverlay.h"
#include "Settings.h"
@@ -1002,6 +1003,36 @@
d->enableCrossSiteXHR();
}
+void WebPagePrivate::addOriginAccessWhitelistEntry(const char* sourceOrigin, const char* destinationOrigin, bool allowDestinationSubdomains)
+{
+ RefPtr<SecurityOrigin> source = SecurityOrigin::createFromString(sourceOrigin);
+ if (source->isUnique())
+ return;
+
+ KURL destination(KURL(), destinationOrigin);
+ SecurityPolicy::addOriginAccessWhitelistEntry(*source, destination.protocol(), destination.host(), allowDestinationSubdomains);
+}
+
+void WebPage::addOriginAccessWhitelistEntry(const char* sourceOrigin, const char* destinationOrigin, bool allowDestinationSubdomains)
+{
+ d->addOriginAccessWhitelistEntry(sourceOrigin, destinationOrigin, allowDestinationSubdomains);
+}
+
+void WebPagePrivate::removeOriginAccessWhitelistEntry(const char* sourceOrigin, const char* destinationOrigin, bool allowDestinationSubdomains)
+{
+ RefPtr<SecurityOrigin> source = SecurityOrigin::createFromString(sourceOrigin);
+ if (source->isUnique())
+ return;
+
+ KURL destination(KURL(), destinationOrigin);
+ SecurityPolicy::removeOriginAccessWhitelistEntry(*source, destination.protocol(), destination.host(), allowDestinationSubdomains);
+}
+
+void WebPage::removeOriginAccessWhitelistEntry(const char* sourceOrigin, const char* destinationOrigin, bool allowDestinationSubdomains)
+{
+ d->removeOriginAccessWhitelistEntry(sourceOrigin, destinationOrigin, allowDestinationSubdomains);
+}
+
void WebPagePrivate::setLoadState(LoadState state)
{
if (m_loadState == state)
Modified: trunk/Source/WebKit/blackberry/Api/WebPage.h (124337 => 124338)
--- trunk/Source/WebKit/blackberry/Api/WebPage.h 2012-08-01 15:57:44 UTC (rev 124337)
+++ trunk/Source/WebKit/blackberry/Api/WebPage.h 2012-08-01 16:15:05 UTC (rev 124338)
@@ -117,6 +117,8 @@
void prepareToDestroy();
void enableCrossSiteXHR();
+ void addOriginAccessWhitelistEntry(const char* sourceOrigin, const char* destinationOrigin, bool allowDestinationSubdomains);
+ void removeOriginAccessWhitelistEntry(const char* sourceOrigin, const char* destinationOrigin, bool allowDestinationSubdomains);
void reload();
void reloadFromCache();
Modified: trunk/Source/WebKit/blackberry/Api/WebPage_p.h (124337 => 124338)
--- trunk/Source/WebKit/blackberry/Api/WebPage_p.h 2012-08-01 15:57:44 UTC (rev 124337)
+++ trunk/Source/WebKit/blackberry/Api/WebPage_p.h 2012-08-01 16:15:05 UTC (rev 124338)
@@ -106,6 +106,8 @@
void prepareToDestroy();
void enableCrossSiteXHR();
+ void addOriginAccessWhitelistEntry(const char* sourceOrigin, const char* destinationOrigin, bool allowDestinationSubdomains);
+ void removeOriginAccessWhitelistEntry(const char* sourceOrigin, const char* destinationOrigin, bool allowDestinationSubdomains);
LoadState loadState() const { return m_loadState; }
bool isLoading() const { return m_loadState == WebPagePrivate::Provisional || m_loadState == WebPagePrivate::Committed; }
Modified: trunk/Source/WebKit/blackberry/Api/WebSettings.cpp (124337 => 124338)
--- trunk/Source/WebKit/blackberry/Api/WebSettings.cpp 2012-08-01 15:57:44 UTC (rev 124337)
+++ trunk/Source/WebKit/blackberry/Api/WebSettings.cpp 2012-08-01 16:15:05 UTC (rev 124338)
@@ -161,6 +161,7 @@
settings = new WebSettings;
settings->m_private->impl = new WebSettingsPrivate::WebSettingsPrivateImpl();
settings->m_private->copyOnWrite = false;
+ settings->m_private->setBoolean(BlackBerryAllowCrossSiteRequests, false);
settings->m_private->setUnsigned(BlackBerryBackgroundColor, WebCore::Color::white);
settings->m_private->setBoolean(BlackBerryCookiesEnabled, true);
settings->m_private->setDouble(BlackBerryInitialScale, -1);
Modified: trunk/Source/WebKit/blackberry/ChangeLog (124337 => 124338)
--- trunk/Source/WebKit/blackberry/ChangeLog 2012-08-01 15:57:44 UTC (rev 124337)
+++ trunk/Source/WebKit/blackberry/ChangeLog 2012-08-01 16:15:05 UTC (rev 124338)
@@ -1,3 +1,26 @@
+2012-08-01 Jacky Jiang <[email protected]>
+
+ [BlackBerry] Allow client side to add and remove origin access whitelist entries
+ https://bugs.webkit.org/show_bug.cgi?id=92790
+
+ Reviewed by Yong Li.
+
+ PR: 172658
+ Add two new APIs to add and remove origin access whitelist entries.
+ Initialize the BlackBerryAllowCrossSiteRequests WebSetting to false.
+
+ * Api/WebPage.cpp:
+ (BlackBerry::WebKit::WebPagePrivate::addOriginAccessWhitelistEntry):
+ (WebKit):
+ (BlackBerry::WebKit::WebPage::addOriginAccessWhitelistEntry):
+ (BlackBerry::WebKit::WebPagePrivate::removeOriginAccessWhitelistEntry):
+ (BlackBerry::WebKit::WebPage::removeOriginAccessWhitelistEntry):
+ * Api/WebPage.h:
+ * Api/WebPage_p.h:
+ (WebPagePrivate):
+ * Api/WebSettings.cpp:
+ (BlackBerry::WebKit::WebSettings::standardSettings):
+
2012-08-01 Mike Fenton <[email protected]>
[BlackBerry] Consolidate suppression of keyboard requests.