Title: [125714] trunk/Source/WebKit/blackberry
- Revision
- 125714
- Author
- [email protected]
- Date
- 2012-08-15 15:07:46 -0700 (Wed, 15 Aug 2012)
Log Message
[BlackBerry] Upstream FrameLoaderClientBlackBerry::securityOriginForNewDocument()
https://bugs.webkit.org/show_bug.cgi?id=94139
Patch by Yong Li <[email protected]> on 2012-08-15
Reviewed by Antonio Gomes.
Keep same security origin when a file URL automatically redirects to its child folder.
This patch will be reverted when we finish the better solution.
PR# 172333 and PR# 180590.
* WebCoreSupport/FrameLoaderClientBlackBerry.cpp:
(WebCore::FrameLoaderClientBlackBerry::FrameLoaderClientBlackBerry):
(WebCore::FrameLoaderClientBlackBerry::dispatchDidStartProvisionalLoad):
(WebCore::FrameLoaderClientBlackBerry::securityOriginForNewDocument):
(WebCore):
* WebCoreSupport/FrameLoaderClientBlackBerry.h:
(FrameLoaderClientBlackBerry):
Modified Paths
Diff
Modified: trunk/Source/WebKit/blackberry/ChangeLog (125713 => 125714)
--- trunk/Source/WebKit/blackberry/ChangeLog 2012-08-15 21:54:50 UTC (rev 125713)
+++ trunk/Source/WebKit/blackberry/ChangeLog 2012-08-15 22:07:46 UTC (rev 125714)
@@ -1,5 +1,24 @@
2012-08-15 Yong Li <[email protected]>
+ [BlackBerry] Upstream FrameLoaderClientBlackBerry::securityOriginForNewDocument()
+ https://bugs.webkit.org/show_bug.cgi?id=94139
+
+ Reviewed by Antonio Gomes.
+
+ Keep same security origin when a file URL automatically redirects to its child folder.
+ This patch will be reverted when we finish the better solution.
+ PR# 172333 and PR# 180590.
+
+ * WebCoreSupport/FrameLoaderClientBlackBerry.cpp:
+ (WebCore::FrameLoaderClientBlackBerry::FrameLoaderClientBlackBerry):
+ (WebCore::FrameLoaderClientBlackBerry::dispatchDidStartProvisionalLoad):
+ (WebCore::FrameLoaderClientBlackBerry::securityOriginForNewDocument):
+ (WebCore):
+ * WebCoreSupport/FrameLoaderClientBlackBerry.h:
+ (FrameLoaderClientBlackBerry):
+
+2012-08-15 Yong Li <[email protected]>
+
[BlackBerry] Should not keep recreating GeoTracker in setEnableHighAccuracy()
https://bugs.webkit.org/show_bug.cgi?id=94136
Modified: trunk/Source/WebKit/blackberry/WebCoreSupport/FrameLoaderClientBlackBerry.cpp (125713 => 125714)
--- trunk/Source/WebKit/blackberry/WebCoreSupport/FrameLoaderClientBlackBerry.cpp 2012-08-15 21:54:50 UTC (rev 125713)
+++ trunk/Source/WebKit/blackberry/WebCoreSupport/FrameLoaderClientBlackBerry.cpp 2012-08-15 22:07:46 UTC (rev 125714)
@@ -108,6 +108,7 @@
, m_pluginView(0)
, m_hasSentResponseToPlugin(false)
, m_cancelLoadOnNextData(false)
+ , m_wasProvisionalLoadTriggeredByUserGesture(true) // To avoid affecting the first load.
{
}
@@ -504,6 +505,8 @@
if (m_webPagePrivate->m_dumpRenderTree)
m_webPagePrivate->m_dumpRenderTree->didStartProvisionalLoadForFrame(m_frame);
+
+ m_wasProvisionalLoadTriggeredByUserGesture = ScriptController::processingUserGesture();
}
void FrameLoaderClientBlackBerry::dispatchDidReceiveResponse(DocumentLoader*, unsigned long identifier, const ResourceResponse& response)
@@ -1252,4 +1255,22 @@
m_webPagePrivate->m_client->notifyDidLoadFromApplicationCache();
}
+PassRefPtr<SecurityOrigin> FrameLoaderClientBlackBerry::securityOriginForNewDocument(const KURL& url)
+{
+ // What we are trying to do here is to keep using the old path as origin when a file-based html page
+ // changes its location to some html in a subfolder. This will allow some file-based html packages
+ // to work smoothly even with security checks enabled.
+
+ RefPtr<SecurityOrigin> newSecurityOrigin = SecurityOrigin::create(url);
+
+ if (m_wasProvisionalLoadTriggeredByUserGesture || !url.isLocalFile())
+ return newSecurityOrigin;
+
+ RefPtr<SecurityOrigin> currentSecurityOrigin = m_frame->document()->securityOrigin();
+ if (currentSecurityOrigin && currentSecurityOrigin->containsInFolder(newSecurityOrigin.get()))
+ return currentSecurityOrigin;
+
+ return newSecurityOrigin;
+}
+
} // WebCore
Modified: trunk/Source/WebKit/blackberry/WebCoreSupport/FrameLoaderClientBlackBerry.h (125713 => 125714)
--- trunk/Source/WebKit/blackberry/WebCoreSupport/FrameLoaderClientBlackBerry.h 2012-08-15 21:54:50 UTC (rev 125713)
+++ trunk/Source/WebKit/blackberry/WebCoreSupport/FrameLoaderClientBlackBerry.h 2012-08-15 22:07:46 UTC (rev 125714)
@@ -170,6 +170,8 @@
virtual PassRefPtr<FrameNetworkingContext> createNetworkingContext();
+ virtual PassRefPtr<SecurityOrigin> securityOriginForNewDocument(const KURL&);
+
void readyToRender(bool pageIsVisuallyNonEmpty);
void doPendingFragmentScroll();
@@ -215,6 +217,8 @@
// Used to stop media files from loading because we don't need to have the entire file loaded by WebKit.
bool m_cancelLoadOnNextData;
+
+ bool m_wasProvisionalLoadTriggeredByUserGesture;
};
} // WebCore
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes