| Index: webkit/port/page/Location.cpp
|
| ===================================================================
|
| --- webkit/port/page/Location.cpp (revision 5331)
|
| +++ webkit/port/page/Location.cpp (working copy)
|
| @@ -147,7 +147,10 @@
|
| return;
|
|
|
| Frame* activeFrame = ScriptController::retrieveActiveFrame();
|
| - if (activeFrame && !url.protocolIs("javascript")) {
|
| + if (!activeFrame)
|
| + return;
|
| +
|
| + if (!url.protocolIs("javascript") || ScriptController::isSafeScript(frame)) {
|
| bool user_gesture = activeFrame->script()->processingUserGesture();
|
| frame->loader()->scheduleLocationChange(url.string(),
|
| activeFrame->loader()->outgoingReferrer(), lock_history, user_gesture);
|
| @@ -206,11 +209,7 @@
|
| if (!active_frame->loader()->shouldAllowNavigation(m_frame))
|
| return;
|
|
|
| - // Allows cross domain access except javascript url.
|
| - if (!parseURL(value).startsWith("javascript:", false) ||
|
| - ScriptController::isSafeScript(m_frame)) {
|
| - navigateIfAllowed(m_frame, active_frame->loader()->completeURL(value), false);
|
| - }
|
| + navigateIfAllowed(m_frame, active_frame->loader()->completeURL(value), false);
|
| }
|
|
|
| void Location::setPathname(const String& pathname) {
|
| @@ -280,11 +279,7 @@
|
| if (!active_frame->loader()->shouldAllowNavigation(m_frame))
|
| return;
|
|
|
| - // Allows cross domain access except javascript url.
|
| - if (!parseURL(url).startsWith("javascript:", false) ||
|
| - ScriptController::isSafeScript(m_frame)) {
|
| - navigateIfAllowed(m_frame, active_frame->loader()->completeURL(url), true);
|
| - }
|
| + navigateIfAllowed(m_frame, active_frame->loader()->completeURL(url), true);
|
| }
|
|
|
| void Location::assign(const String& url) {
|
| @@ -298,12 +293,9 @@
|
| if (!active_frame->loader()->shouldAllowNavigation(m_frame))
|
| return;
|
|
|
| - if (!parseURL(url).startsWith("javascript:", false) ||
|
| - ScriptController::isSafeScript(m_frame)) {
|
| - navigateIfAllowed(m_frame, active_frame->loader()->completeURL(url), false);
|
| - }
|
| + navigateIfAllowed(m_frame, active_frame->loader()->completeURL(url), false);
|
| }
|
| +
|
| #endif // USE(V8)
|
|
|
| -
|
| } // namespace WebCore
|
|
|