Title: [120861] trunk/Source/WebKit/blackberry
- Revision
- 120861
- Author
- [email protected]
- Date
- 2012-06-20 14:15:18 -0700 (Wed, 20 Jun 2012)
Log Message
[BlackBerry] Add an API to immediately enable cross-site XHR
https://bugs.webkit.org/show_bug.cgi?id=89594
Internally Reviewed by Yong Li.
Patch by Christopher Hutten-Czapski <[email protected]> on 2012-06-20
Reviewed by Rob Buis.
There is no API to disable it as clients may rely on legacy behaviour
of not disabling until the next frame load.
* Api/WebPage.cpp:
(BlackBerry::WebKit::enableCrossSiteXHRRecursively):
(WebKit):
(BlackBerry::WebKit::WebPagePrivate::enableCrossSiteXHR):
(BlackBerry::WebKit::WebPage::enableCrossSiteXHR):
* Api/WebPage.h:
* Api/WebPage_p.h:
(WebPagePrivate):
Modified Paths
Diff
Modified: trunk/Source/WebKit/blackberry/Api/WebPage.cpp (120860 => 120861)
--- trunk/Source/WebKit/blackberry/Api/WebPage.cpp 2012-06-20 21:07:33 UTC (rev 120860)
+++ trunk/Source/WebKit/blackberry/Api/WebPage.cpp 2012-06-20 21:15:18 UTC (rev 120861)
@@ -889,6 +889,29 @@
d->prepareToDestroy();
}
+static void enableCrossSiteXHRRecursively(Frame* frame)
+{
+ frame->document()->securityOrigin()->grantUniversalAccess();
+
+ Vector<RefPtr<Frame>, 10> childFrames;
+ for (RefPtr<Frame> childFrame = frame->tree()->firstChild(); childFrame; childFrame = childFrame->tree()->nextSibling())
+ childFrames.append(childFrame);
+
+ unsigned size = childFrames.size();
+ for (unsigned i = 0; i < size; i++)
+ enableCrossSiteXHRRecursively(childFrames[i].get());
+}
+
+void WebPagePrivate::enableCrossSiteXHR()
+{
+ enableCrossSiteXHRRecursively(m_mainFrame);
+}
+
+void WebPage::enableCrossSiteXHR()
+{
+ d->enableCrossSiteXHR();
+}
+
void WebPagePrivate::setLoadState(LoadState state)
{
if (m_loadState == state)
Modified: trunk/Source/WebKit/blackberry/Api/WebPage.h (120860 => 120861)
--- trunk/Source/WebKit/blackberry/Api/WebPage.h 2012-06-20 21:07:33 UTC (rev 120860)
+++ trunk/Source/WebKit/blackberry/Api/WebPage.h 2012-06-20 21:15:18 UTC (rev 120861)
@@ -110,6 +110,8 @@
// This will force any unload handlers to run.
void prepareToDestroy();
+ void enableCrossSiteXHR();
+
void reload();
void reloadFromCache();
Modified: trunk/Source/WebKit/blackberry/Api/WebPage_p.h (120860 => 120861)
--- trunk/Source/WebKit/blackberry/Api/WebPage_p.h 2012-06-20 21:07:33 UTC (rev 120860)
+++ trunk/Source/WebKit/blackberry/Api/WebPage_p.h 2012-06-20 21:15:18 UTC (rev 120861)
@@ -104,6 +104,8 @@
void stopCurrentLoad();
void prepareToDestroy();
+ void enableCrossSiteXHR();
+
LoadState loadState() const { return m_loadState; }
bool isLoading() const { return m_loadState == WebPagePrivate::Provisional || m_loadState == WebPagePrivate::Committed; }
Modified: trunk/Source/WebKit/blackberry/ChangeLog (120860 => 120861)
--- trunk/Source/WebKit/blackberry/ChangeLog 2012-06-20 21:07:33 UTC (rev 120860)
+++ trunk/Source/WebKit/blackberry/ChangeLog 2012-06-20 21:15:18 UTC (rev 120861)
@@ -1,3 +1,23 @@
+2012-06-20 Christopher Hutten-Czapski <[email protected]>
+
+ [BlackBerry] Add an API to immediately enable cross-site XHR
+ https://bugs.webkit.org/show_bug.cgi?id=89594
+
+ Internally Reviewed by Yong Li.
+ Reviewed by Rob Buis.
+
+ There is no API to disable it as clients may rely on legacy behaviour
+ of not disabling until the next frame load.
+
+ * Api/WebPage.cpp:
+ (BlackBerry::WebKit::enableCrossSiteXHRRecursively):
+ (WebKit):
+ (BlackBerry::WebKit::WebPagePrivate::enableCrossSiteXHR):
+ (BlackBerry::WebKit::WebPage::enableCrossSiteXHR):
+ * Api/WebPage.h:
+ * Api/WebPage_p.h:
+ (WebPagePrivate):
+
2012-06-20 Konrad Piascik <[email protected]>
[BlackBerry] Enable setAcceleratedCompositingForFixedPositionEnabled
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes