Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(62)

Side by Side Diff: third_party/WebKit/Source/core/frame/LocalFrame.cpp

Issue 1444183003: Cancel javascript: URL navigations if the frame was navigated. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: More comments Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org> 2 * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org>
3 * 1999 Lars Knoll <knoll@kde.org> 3 * 1999 Lars Knoll <knoll@kde.org>
4 * 1999 Antti Koivisto <koivisto@kde.org> 4 * 1999 Antti Koivisto <koivisto@kde.org>
5 * 2000 Simon Hausmann <hausmann@kde.org> 5 * 2000 Simon Hausmann <hausmann@kde.org>
6 * 2000 Stefan Schimanski <1Stein@gmx.de> 6 * 2000 Stefan Schimanski <1Stein@gmx.de>
7 * 2001 George Staikos <staikos@kde.org> 7 * 2001 George Staikos <staikos@kde.org>
8 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r ights reserved. 8 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r ights reserved.
9 * Copyright (C) 2005 Alexey Proskuryakov <ap@nypop.com> 9 * Copyright (C) 2005 Alexey Proskuryakov <ap@nypop.com>
10 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) 10 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after
250 FrameLoadRequest request(&originDocument, url); 250 FrameLoadRequest request(&originDocument, url);
251 request.resourceRequest().setHasUserGesture(userGestureStatus == UserGes tureStatus::Active); 251 request.resourceRequest().setHasUserGesture(userGestureStatus == UserGes tureStatus::Active);
252 m_loader.load(request); 252 m_loader.load(request);
253 } else { 253 } else {
254 m_navigationScheduler->scheduleLocationChange(&originDocument, url.strin g(), replaceCurrentItem); 254 m_navigationScheduler->scheduleLocationChange(&originDocument, url.strin g(), replaceCurrentItem);
255 } 255 }
256 } 256 }
257 257
258 void LocalFrame::navigate(const FrameLoadRequest& request) 258 void LocalFrame::navigate(const FrameLoadRequest& request)
259 { 259 {
260 if (!isNavigationAllowed())
261 return;
260 m_loader.load(request); 262 m_loader.load(request);
261 } 263 }
262 264
263 void LocalFrame::reload(FrameLoadType loadType, ClientRedirectPolicy clientRedir ectPolicy) 265 void LocalFrame::reload(FrameLoadType loadType, ClientRedirectPolicy clientRedir ectPolicy)
264 { 266 {
265 ASSERT(loadType == FrameLoadTypeReload || loadType == FrameLoadTypeReloadFro mOrigin); 267 ASSERT(loadType == FrameLoadTypeReload || loadType == FrameLoadTypeReloadFro mOrigin);
266 ASSERT(clientRedirectPolicy == NotClientRedirect || loadType == FrameLoadTyp eReload); 268 ASSERT(clientRedirectPolicy == NotClientRedirect || loadType == FrameLoadTyp eReload);
267 if (clientRedirectPolicy == NotClientRedirect) { 269 if (clientRedirectPolicy == NotClientRedirect) {
268 if (!m_loader.currentItem()) 270 if (!m_loader.currentItem())
269 return; 271 return;
(...skipping 601 matching lines...) Expand 10 before | Expand all | Expand 10 after
871 : Frame(client, host, owner) 873 : Frame(client, host, owner)
872 , m_loader(this) 874 , m_loader(this)
873 , m_navigationScheduler(NavigationScheduler::create(this)) 875 , m_navigationScheduler(NavigationScheduler::create(this))
874 , m_script(ScriptController::create(this)) 876 , m_script(ScriptController::create(this))
875 , m_editor(Editor::create(*this)) 877 , m_editor(Editor::create(*this))
876 , m_spellChecker(SpellChecker::create(*this)) 878 , m_spellChecker(SpellChecker::create(*this))
877 , m_selection(FrameSelection::create(this)) 879 , m_selection(FrameSelection::create(this))
878 , m_eventHandler(adoptPtrWillBeNoop(new EventHandler(this))) 880 , m_eventHandler(adoptPtrWillBeNoop(new EventHandler(this)))
879 , m_console(FrameConsole::create(*this)) 881 , m_console(FrameConsole::create(*this))
880 , m_inputMethodController(InputMethodController::create(*this)) 882 , m_inputMethodController(InputMethodController::create(*this))
883 , m_navigationDisableCount(0)
881 , m_pageZoomFactor(parentPageZoomFactor(this)) 884 , m_pageZoomFactor(parentPageZoomFactor(this))
882 , m_textZoomFactor(parentTextZoomFactor(this)) 885 , m_textZoomFactor(parentTextZoomFactor(this))
883 , m_inViewSourceMode(false) 886 , m_inViewSourceMode(false)
884 { 887 {
885 if (isLocalRoot()) 888 if (isLocalRoot())
886 m_instrumentingAgents = InstrumentingAgents::create(); 889 m_instrumentingAgents = InstrumentingAgents::create();
887 else 890 else
888 m_instrumentingAgents = localFrameRoot()->m_instrumentingAgents; 891 m_instrumentingAgents = localFrameRoot()->m_instrumentingAgents;
889 } 892 }
890 893
(...skipping 11 matching lines...) Expand all
902 SecurityContext* context = securityContext(); 905 SecurityContext* context = securityContext();
903 if (!context) 906 if (!context)
904 return; 907 return;
905 908
906 WebSecurityOrigin securityOrigin(context->securityOrigin()); 909 WebSecurityOrigin securityOrigin(context->securityOrigin());
907 frameScheduler()->setFrameOrigin(&securityOrigin); 910 frameScheduler()->setFrameOrigin(&securityOrigin);
908 } 911 }
909 912
910 DEFINE_WEAK_IDENTIFIER_MAP(LocalFrame); 913 DEFINE_WEAK_IDENTIFIER_MAP(LocalFrame);
911 914
915 FrameNavigationDisabler::FrameNavigationDisabler(LocalFrame& frame)
916 : m_frame(&frame)
917 {
918 m_frame->disableNavigation();
919 }
920
921 FrameNavigationDisabler::~FrameNavigationDisabler()
922 {
923 m_frame->enableNavigation();
924 }
925
912 } // namespace blink 926 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/frame/LocalFrame.h ('k') | third_party/WebKit/Source/core/loader/FrameLoader.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698