Title: [124338] trunk/Source/WebKit/blackberry
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.
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to