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

Side by Side Diff: Source/core/loader/FrameLoader.cpp

Issue 683013002: Extract a DOMWindow interface from LocalDOMWindow and use it in the idl. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebase on top of DOMWindow moves and UseCounter overload for Frame Created 6 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 | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserv ed. 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserv ed.
3 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) 3 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
4 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t orchmobile.com/) 4 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t orchmobile.com/)
5 * Copyright (C) 2008 Alp Toker <alp@atoker.com> 5 * Copyright (C) 2008 Alp Toker <alp@atoker.com>
6 * Copyright (C) Research In Motion Limited 2009. All rights reserved. 6 * Copyright (C) Research In Motion Limited 2009. All rights reserved.
7 * Copyright (C) 2011 Kris Jordan <krisjordan@gmail.com> 7 * Copyright (C) 2011 Kris Jordan <krisjordan@gmail.com>
8 * Copyright (C) 2011 Google Inc. All rights reserved. 8 * Copyright (C) 2011 Google Inc. All rights reserved.
9 * 9 *
10 * Redistribution and use in source and binary forms, with or without 10 * Redistribution and use in source and binary forms, with or without
(...skipping 568 matching lines...) Expand 10 before | Expand all | Expand 10 after
579 return; 579 return;
580 } 580 }
581 m_loadType = type; 581 m_loadType = type;
582 saveScrollState(); 582 saveScrollState();
583 583
584 KURL oldURL = m_frame->document()->url(); 584 KURL oldURL = m_frame->document()->url();
585 // If we were in the autoscroll/panScroll mode we want to stop it before fol lowing the link to the anchor 585 // If we were in the autoscroll/panScroll mode we want to stop it before fol lowing the link to the anchor
586 bool hashChange = equalIgnoringFragmentIdentifier(url, oldURL) && url.fragme ntIdentifier() != oldURL.fragmentIdentifier(); 586 bool hashChange = equalIgnoringFragmentIdentifier(url, oldURL) && url.fragme ntIdentifier() != oldURL.fragmentIdentifier();
587 if (hashChange) { 587 if (hashChange) {
588 m_frame->eventHandler().stopAutoscroll(); 588 m_frame->eventHandler().stopAutoscroll();
589 m_frame->domWindow()->enqueueHashchangeEvent(oldURL, url); 589 m_frame->localDOMWindow()->enqueueHashchangeEvent(oldURL, url);
590 } 590 }
591 m_documentLoader->setIsClientRedirect(clientRedirect == ClientRedirect); 591 m_documentLoader->setIsClientRedirect(clientRedirect == ClientRedirect);
592 m_documentLoader->setReplacesCurrentHistoryItem(m_loadType == FrameLoadTypeS tandard); 592 m_documentLoader->setReplacesCurrentHistoryItem(m_loadType == FrameLoadTypeS tandard);
593 updateForSameDocumentNavigation(url, SameDocumentNavigationDefault, nullptr, type); 593 updateForSameDocumentNavigation(url, SameDocumentNavigationDefault, nullptr, type);
594 594
595 m_frame->view()->setWasScrolledByUser(false); 595 m_frame->view()->setWasScrolledByUser(false);
596 596
597 // We need to scroll to the fragment whether or not a hash change occurred, since 597 // We need to scroll to the fragment whether or not a hash change occurred, since
598 // the user might have scrolled since the previous navigation. 598 // the user might have scrolled since the previous navigation.
599 scrollToFragmentWithParentBoundary(url); 599 scrollToFragmentWithParentBoundary(url);
600 checkCompleted(); 600 checkCompleted();
601 601
602 m_frame->domWindow()->statePopped(stateObject ? stateObject : SerializedScri ptValue::nullValue()); 602 m_frame->localDOMWindow()->statePopped(stateObject ? stateObject : Serialize dScriptValue::nullValue());
603 } 603 }
604 604
605 void FrameLoader::completed() 605 void FrameLoader::completed()
606 { 606 {
607 RefPtrWillBeRawPtr<LocalFrame> protect(m_frame.get()); 607 RefPtrWillBeRawPtr<LocalFrame> protect(m_frame.get());
608 608
609 for (Frame* descendant = m_frame->tree().traverseNext(m_frame); descendant; descendant = descendant->tree().traverseNext(m_frame)) { 609 for (Frame* descendant = m_frame->tree().traverseNext(m_frame); descendant; descendant = descendant->tree().traverseNext(m_frame)) {
610 if (descendant->isLocalFrame()) 610 if (descendant->isLocalFrame())
611 toLocalFrame(descendant)->navigationScheduler().startTimer(); 611 toLocalFrame(descendant)->navigationScheduler().startTimer();
612 } 612 }
(...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after
936 m_frame->page()->chrome().client().needTouchEvents(false); 936 m_frame->page()->chrome().client().needTouchEvents(false);
937 937
938 client()->transitionToCommittedForNewPage(); 938 client()->transitionToCommittedForNewPage();
939 m_frame->navigationScheduler().cancel(); 939 m_frame->navigationScheduler().cancel();
940 m_frame->editor().clearLastEditCommand(); 940 m_frame->editor().clearLastEditCommand();
941 941
942 // If we are still in the process of initializing an empty document then 942 // If we are still in the process of initializing an empty document then
943 // its frame is not in a consistent state for rendering, so avoid setJSStatu sBarText 943 // its frame is not in a consistent state for rendering, so avoid setJSStatu sBarText
944 // since it may cause clients to attempt to render the frame. 944 // since it may cause clients to attempt to render the frame.
945 if (!m_stateMachine.creatingInitialEmptyDocument()) { 945 if (!m_stateMachine.creatingInitialEmptyDocument()) {
946 LocalDOMWindow* window = m_frame->domWindow(); 946 DOMWindow* window = m_frame->domWindow();
947 window->setStatus(String()); 947 window->setStatus(String());
948 window->setDefaultStatus(String()); 948 window->setDefaultStatus(String());
949 } 949 }
950 } 950 }
951 951
952 bool FrameLoader::isLoadingMainFrame() const 952 bool FrameLoader::isLoadingMainFrame() const
953 { 953 {
954 return m_frame->isMainFrame(); 954 return m_frame->isMainFrame();
955 } 955 }
956 956
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
1032 // the new page is ready. 1032 // the new page is ready.
1033 1033
1034 // Retry restoring scroll offset since FrameStateComplete disables content 1034 // Retry restoring scroll offset since FrameStateComplete disables content
1035 // size clamping. 1035 // size clamping.
1036 restoreScrollPositionAndViewState(); 1036 restoreScrollPositionAndViewState();
1037 1037
1038 if (!m_stateMachine.committedFirstRealDocumentLoad()) 1038 if (!m_stateMachine.committedFirstRealDocumentLoad())
1039 return true; 1039 return true;
1040 1040
1041 m_progressTracker->progressCompleted(); 1041 m_progressTracker->progressCompleted();
1042 m_frame->domWindow()->finishedLoading(); 1042 m_frame->localDOMWindow()->finishedLoading();
1043 1043
1044 const ResourceError& error = m_documentLoader->mainDocumentError(); 1044 const ResourceError& error = m_documentLoader->mainDocumentError();
1045 if (!error.isNull()) { 1045 if (!error.isNull()) {
1046 client()->dispatchDidFailLoad(error); 1046 client()->dispatchDidFailLoad(error);
1047 } else { 1047 } else {
1048 // Report mobile vs. desktop page statistics. This will only report on A ndroid. 1048 // Report mobile vs. desktop page statistics. This will only report on A ndroid.
1049 if (m_frame->isMainFrame()) 1049 if (m_frame->isMainFrame())
1050 m_frame->document()->viewportDescription().reportMobilePageStats(m_f rame); 1050 m_frame->document()->viewportDescription().reportMobilePageStats(m_f rame);
1051 1051
1052 client()->dispatchDidFinishLoad(); 1052 client()->dispatchDidFinishLoad();
(...skipping 400 matching lines...) Expand 10 before | Expand all | Expand 10 after
1453 // FIXME: We need a way to propagate sandbox flags to out-of-process frames. 1453 // FIXME: We need a way to propagate sandbox flags to out-of-process frames.
1454 Frame* parentFrame = m_frame->tree().parent(); 1454 Frame* parentFrame = m_frame->tree().parent();
1455 if (parentFrame && parentFrame->isLocalFrame()) 1455 if (parentFrame && parentFrame->isLocalFrame())
1456 flags |= toLocalFrame(parentFrame)->document()->sandboxFlags(); 1456 flags |= toLocalFrame(parentFrame)->document()->sandboxFlags();
1457 if (FrameOwner* frameOwner = m_frame->owner()) 1457 if (FrameOwner* frameOwner = m_frame->owner())
1458 flags |= frameOwner->sandboxFlags(); 1458 flags |= frameOwner->sandboxFlags();
1459 return flags; 1459 return flags;
1460 } 1460 }
1461 1461
1462 } // namespace blink 1462 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698