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

Side by Side Diff: Source/web/WebFrameImpl.cpp

Issue 31063004: Have Frame::loader() return a reference (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 2 months 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
« no previous file with comments | « Source/web/FrameLoaderClientImpl.cpp ('k') | Source/web/WebHelperPluginImpl.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2009 Google Inc. All rights reserved. 2 * Copyright (C) 2009 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 533 matching lines...) Expand 10 before | Expand all | Expand 10 after
544 544
545 long long WebFrameImpl::embedderIdentifier() const 545 long long WebFrameImpl::embedderIdentifier() const
546 { 546 {
547 return m_embedderIdentifier; 547 return m_embedderIdentifier;
548 } 548 }
549 549
550 WebVector<WebIconURL> WebFrameImpl::iconURLs(int iconTypesMask) const 550 WebVector<WebIconURL> WebFrameImpl::iconURLs(int iconTypesMask) const
551 { 551 {
552 // The URL to the icon may be in the header. As such, only 552 // The URL to the icon may be in the header. As such, only
553 // ask the loader for the icon if it's finished loading. 553 // ask the loader for the icon if it's finished loading.
554 if (frame()->loader()->state() == FrameStateComplete) 554 if (frame()->loader().state() == FrameStateComplete)
555 return frame()->loader()->icon()->urlsForTypes(iconTypesMask); 555 return frame()->loader().icon()->urlsForTypes(iconTypesMask);
556 return WebVector<WebIconURL>(); 556 return WebVector<WebIconURL>();
557 } 557 }
558 558
559 WebSize WebFrameImpl::scrollOffset() const 559 WebSize WebFrameImpl::scrollOffset() const
560 { 560 {
561 FrameView* view = frameView(); 561 FrameView* view = frameView();
562 if (!view) 562 if (!view)
563 return WebSize(); 563 return WebSize();
564 return view->scrollOffset(); 564 return view->scrollOffset();
565 } 565 }
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
613 613
614 WebView* WebFrameImpl::view() const 614 WebView* WebFrameImpl::view() const
615 { 615 {
616 return viewImpl(); 616 return viewImpl();
617 } 617 }
618 618
619 WebFrame* WebFrameImpl::opener() const 619 WebFrame* WebFrameImpl::opener() const
620 { 620 {
621 if (!frame()) 621 if (!frame())
622 return 0; 622 return 0;
623 return fromFrame(frame()->loader()->opener()); 623 return fromFrame(frame()->loader().opener());
624 } 624 }
625 625
626 void WebFrameImpl::setOpener(const WebFrame* webFrame) 626 void WebFrameImpl::setOpener(const WebFrame* webFrame)
627 { 627 {
628 frame()->loader()->setOpener(webFrame ? toWebFrameImpl(webFrame)->frame() : 0); 628 frame()->loader().setOpener(webFrame ? toWebFrameImpl(webFrame)->frame() : 0 );
629 } 629 }
630 630
631 WebFrame* WebFrameImpl::parent() const 631 WebFrame* WebFrameImpl::parent() const
632 { 632 {
633 if (!frame()) 633 if (!frame())
634 return 0; 634 return 0;
635 return fromFrame(frame()->tree().parent()); 635 return fromFrame(frame()->tree().parent());
636 } 636 }
637 637
638 WebFrame* WebFrameImpl::top() const 638 WebFrame* WebFrameImpl::top() const
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
806 if (!frame()) 806 if (!frame())
807 return; 807 return;
808 if (!frame()->settings()->isScriptEnabled()) 808 if (!frame()->settings()->isScriptEnabled())
809 return; 809 return;
810 V8GCController::collectGarbage(v8::Isolate::GetCurrent()); 810 V8GCController::collectGarbage(v8::Isolate::GetCurrent());
811 } 811 }
812 812
813 bool WebFrameImpl::checkIfRunInsecureContent(const WebURL& url) const 813 bool WebFrameImpl::checkIfRunInsecureContent(const WebURL& url) const
814 { 814 {
815 ASSERT(frame()); 815 ASSERT(frame());
816 return frame()->loader()->mixedContentChecker()->canRunInsecureContent(frame ()->document()->securityOrigin(), url); 816 return frame()->loader().mixedContentChecker()->canRunInsecureContent(frame( )->document()->securityOrigin(), url);
817 } 817 }
818 818
819 v8::Handle<v8::Value> WebFrameImpl::executeScriptAndReturnValue(const WebScriptS ource& source) 819 v8::Handle<v8::Value> WebFrameImpl::executeScriptAndReturnValue(const WebScriptS ource& source)
820 { 820 {
821 ASSERT(frame()); 821 ASSERT(frame());
822 822
823 // FIXME: This fake user gesture is required to make a bunch of pyauto 823 // FIXME: This fake user gesture is required to make a bunch of pyauto
824 // tests pass. If this isn't needed in non-test situations, we should 824 // tests pass. If this isn't needed in non-test situations, we should
825 // consider removing this code and changing the tests. 825 // consider removing this code and changing the tests.
826 // http://code.google.com/p/chromium/issues/detail?id=86397 826 // http://code.google.com/p/chromium/issues/detail?id=86397
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
888 888
889 RefPtr<DOMFileSystemBase> fileSystem = DOMFileSystem::create(frame()->docume nt(), fileSystemName, static_cast<WebCore::FileSystemType>(type), KURL(ParsedURL String, fileSystemPath.utf8().data())); 889 RefPtr<DOMFileSystemBase> fileSystem = DOMFileSystem::create(frame()->docume nt(), fileSystemName, static_cast<WebCore::FileSystemType>(type), KURL(ParsedURL String, fileSystemPath.utf8().data()));
890 if (isDirectory) 890 if (isDirectory)
891 return toV8(DirectoryEntry::create(fileSystem, filePath), v8::Handle<v8: :Object>(), toIsolate(frame())); 891 return toV8(DirectoryEntry::create(fileSystem, filePath), v8::Handle<v8: :Object>(), toIsolate(frame()));
892 return toV8(FileEntry::create(fileSystem, filePath), v8::Handle<v8::Object>( ), toIsolate(frame())); 892 return toV8(FileEntry::create(fileSystem, filePath), v8::Handle<v8::Object>( ), toIsolate(frame()));
893 } 893 }
894 894
895 void WebFrameImpl::reload(bool ignoreCache) 895 void WebFrameImpl::reload(bool ignoreCache)
896 { 896 {
897 ASSERT(frame()); 897 ASSERT(frame());
898 frame()->loader()->reload(ignoreCache ? EndToEndReload : NormalReload); 898 frame()->loader().reload(ignoreCache ? EndToEndReload : NormalReload);
899 } 899 }
900 900
901 void WebFrameImpl::reloadWithOverrideURL(const WebURL& overrideUrl, bool ignoreC ache) 901 void WebFrameImpl::reloadWithOverrideURL(const WebURL& overrideUrl, bool ignoreC ache)
902 { 902 {
903 ASSERT(frame()); 903 ASSERT(frame());
904 frame()->loader()->reload(ignoreCache ? EndToEndReload : NormalReload, overr ideUrl); 904 frame()->loader().reload(ignoreCache ? EndToEndReload : NormalReload, overri deUrl);
905 } 905 }
906 906
907 void WebFrameImpl::loadRequest(const WebURLRequest& request) 907 void WebFrameImpl::loadRequest(const WebURLRequest& request)
908 { 908 {
909 ASSERT(frame()); 909 ASSERT(frame());
910 ASSERT(!request.isNull()); 910 ASSERT(!request.isNull());
911 const ResourceRequest& resourceRequest = request.toResourceRequest(); 911 const ResourceRequest& resourceRequest = request.toResourceRequest();
912 912
913 if (resourceRequest.url().protocolIs("javascript")) { 913 if (resourceRequest.url().protocolIs("javascript")) {
914 loadJavaScriptURL(resourceRequest.url()); 914 loadJavaScriptURL(resourceRequest.url());
915 return; 915 return;
916 } 916 }
917 917
918 frame()->loader()->load(FrameLoadRequest(0, resourceRequest)); 918 frame()->loader().load(FrameLoadRequest(0, resourceRequest));
919 } 919 }
920 920
921 void WebFrameImpl::loadHistoryItem(const WebHistoryItem& item) 921 void WebFrameImpl::loadHistoryItem(const WebHistoryItem& item)
922 { 922 {
923 ASSERT(frame()); 923 ASSERT(frame());
924 RefPtr<HistoryItem> historyItem = PassRefPtr<HistoryItem>(item); 924 RefPtr<HistoryItem> historyItem = PassRefPtr<HistoryItem>(item);
925 ASSERT(historyItem); 925 ASSERT(historyItem);
926 926
927 frame()->loader()->prepareForHistoryNavigation(); 927 frame()->loader().prepareForHistoryNavigation();
928 RefPtr<HistoryItem> currentItem = frame()->loader()->history()->currentItem( ); 928 RefPtr<HistoryItem> currentItem = frame()->loader().history()->currentItem() ;
929 m_inSameDocumentHistoryLoad = currentItem && currentItem->shouldDoSameDocume ntNavigationTo(historyItem.get()); 929 m_inSameDocumentHistoryLoad = currentItem && currentItem->shouldDoSameDocume ntNavigationTo(historyItem.get());
930 frame()->page()->goToItem(historyItem.get()); 930 frame()->page()->goToItem(historyItem.get());
931 m_inSameDocumentHistoryLoad = false; 931 m_inSameDocumentHistoryLoad = false;
932 } 932 }
933 933
934 void WebFrameImpl::loadData(const WebData& data, const WebString& mimeType, cons t WebString& textEncoding, const WebURL& baseURL, const WebURL& unreachableURL, bool replace) 934 void WebFrameImpl::loadData(const WebData& data, const WebString& mimeType, cons t WebString& textEncoding, const WebURL& baseURL, const WebURL& unreachableURL, bool replace)
935 { 935 {
936 ASSERT(frame()); 936 ASSERT(frame());
937 937
938 // If we are loading substitute data to replace an existing load, then 938 // If we are loading substitute data to replace an existing load, then
939 // inherit all of the properties of that original request. This way, 939 // inherit all of the properties of that original request. This way,
940 // reload will re-attempt the original request. It is essential that 940 // reload will re-attempt the original request. It is essential that
941 // we only do this when there is an unreachableURL since a non-empty 941 // we only do this when there is an unreachableURL since a non-empty
942 // unreachableURL informs FrameLoader::reload to load unreachableURL 942 // unreachableURL informs FrameLoader::reload to load unreachableURL
943 // instead of the currently loaded URL. 943 // instead of the currently loaded URL.
944 ResourceRequest request; 944 ResourceRequest request;
945 if (replace && !unreachableURL.isEmpty()) 945 if (replace && !unreachableURL.isEmpty())
946 request = frame()->loader()->originalRequest(); 946 request = frame()->loader().originalRequest();
947 request.setURL(baseURL); 947 request.setURL(baseURL);
948 948
949 FrameLoadRequest frameRequest(0, request, SubstituteData(data, mimeType, tex tEncoding, unreachableURL)); 949 FrameLoadRequest frameRequest(0, request, SubstituteData(data, mimeType, tex tEncoding, unreachableURL));
950 ASSERT(frameRequest.substituteData().isValid()); 950 ASSERT(frameRequest.substituteData().isValid());
951 frameRequest.setLockBackForwardList(replace); 951 frameRequest.setLockBackForwardList(replace);
952 frame()->loader()->load(frameRequest); 952 frame()->loader().load(frameRequest);
953 } 953 }
954 954
955 void WebFrameImpl::loadHTMLString(const WebData& data, const WebURL& baseURL, co nst WebURL& unreachableURL, bool replace) 955 void WebFrameImpl::loadHTMLString(const WebData& data, const WebURL& baseURL, co nst WebURL& unreachableURL, bool replace)
956 { 956 {
957 ASSERT(frame()); 957 ASSERT(frame());
958 loadData(data, WebString::fromUTF8("text/html"), WebString::fromUTF8("UTF-8" ), baseURL, unreachableURL, replace); 958 loadData(data, WebString::fromUTF8("text/html"), WebString::fromUTF8("UTF-8" ), baseURL, unreachableURL, replace);
959 } 959 }
960 960
961 bool WebFrameImpl::isLoading() const 961 bool WebFrameImpl::isLoading() const
962 { 962 {
963 if (!frame()) 963 if (!frame())
964 return false; 964 return false;
965 return frame()->loader()->isLoading(); 965 return frame()->loader().isLoading();
966 } 966 }
967 967
968 void WebFrameImpl::stopLoading() 968 void WebFrameImpl::stopLoading()
969 { 969 {
970 if (!frame()) 970 if (!frame())
971 return; 971 return;
972 // FIXME: Figure out what we should really do here. It seems like a bug 972 // FIXME: Figure out what we should really do here. It seems like a bug
973 // that FrameLoader::stopLoading doesn't call stopAllLoaders. 973 // that FrameLoader::stopLoading doesn't call stopAllLoaders.
974 frame()->loader()->stopAllLoaders(); 974 frame()->loader().stopAllLoaders();
975 } 975 }
976 976
977 WebDataSource* WebFrameImpl::provisionalDataSource() const 977 WebDataSource* WebFrameImpl::provisionalDataSource() const
978 { 978 {
979 ASSERT(frame()); 979 ASSERT(frame());
980 980
981 // We regard the policy document loader as still provisional. 981 // We regard the policy document loader as still provisional.
982 DocumentLoader* documentLoader = frame()->loader()->provisionalDocumentLoade r(); 982 DocumentLoader* documentLoader = frame()->loader().provisionalDocumentLoader ();
983 if (!documentLoader) 983 if (!documentLoader)
984 documentLoader = frame()->loader()->policyDocumentLoader(); 984 documentLoader = frame()->loader().policyDocumentLoader();
985 985
986 return DataSourceForDocLoader(documentLoader); 986 return DataSourceForDocLoader(documentLoader);
987 } 987 }
988 988
989 WebDataSource* WebFrameImpl::dataSource() const 989 WebDataSource* WebFrameImpl::dataSource() const
990 { 990 {
991 ASSERT(frame()); 991 ASSERT(frame());
992 return DataSourceForDocLoader(frame()->loader()->documentLoader()); 992 return DataSourceForDocLoader(frame()->loader().documentLoader());
993 } 993 }
994 994
995 WebHistoryItem WebFrameImpl::previousHistoryItem() const 995 WebHistoryItem WebFrameImpl::previousHistoryItem() const
996 { 996 {
997 ASSERT(frame()); 997 ASSERT(frame());
998 // We use the previous item here because documentState (filled-out forms) 998 // We use the previous item here because documentState (filled-out forms)
999 // only get saved to history when it becomes the previous item. The caller 999 // only get saved to history when it becomes the previous item. The caller
1000 // is expected to query the history item after a navigation occurs, after 1000 // is expected to query the history item after a navigation occurs, after
1001 // the desired history item has become the previous entry. 1001 // the desired history item has become the previous entry.
1002 return WebHistoryItem(frame()->loader()->history()->previousItem()); 1002 return WebHistoryItem(frame()->loader().history()->previousItem());
1003 } 1003 }
1004 1004
1005 WebHistoryItem WebFrameImpl::currentHistoryItem() const 1005 WebHistoryItem WebFrameImpl::currentHistoryItem() const
1006 { 1006 {
1007 ASSERT(frame()); 1007 ASSERT(frame());
1008 1008
1009 // We're shutting down. 1009 // We're shutting down.
1010 if (!frame()->loader()->activeDocumentLoader()) 1010 if (!frame()->loader().activeDocumentLoader())
1011 return WebHistoryItem(); 1011 return WebHistoryItem();
1012 1012
1013 // If we are still loading, then we don't want to clobber the current 1013 // If we are still loading, then we don't want to clobber the current
1014 // history item as this could cause us to lose the scroll position and 1014 // history item as this could cause us to lose the scroll position and
1015 // document state. However, it is OK for new navigations. 1015 // document state. However, it is OK for new navigations.
1016 // FIXME: Can we make this a plain old getter, instead of worrying about 1016 // FIXME: Can we make this a plain old getter, instead of worrying about
1017 // clobbering here? 1017 // clobbering here?
1018 if (!m_inSameDocumentHistoryLoad && (frame()->loader()->loadType() == FrameL oadTypeStandard 1018 if (!m_inSameDocumentHistoryLoad && (frame()->loader().loadType() == FrameLo adTypeStandard
1019 || !frame()->loader()->activeDocumentLoader()->isLoadingInAPISense())) 1019 || !frame()->loader().activeDocumentLoader()->isLoadingInAPISense()))
1020 frame()->loader()->history()->saveDocumentAndScrollState(); 1020 frame()->loader().history()->saveDocumentAndScrollState();
1021 1021
1022 if (HistoryItem* item = frame()->loader()->history()->provisionalItem()) 1022 if (HistoryItem* item = frame()->loader().history()->provisionalItem())
1023 return WebHistoryItem(item); 1023 return WebHistoryItem(item);
1024 return WebHistoryItem(frame()->page()->mainFrame()->loader()->history()->cur rentItem()); 1024 return WebHistoryItem(frame()->page()->mainFrame()->loader().history()->curr entItem());
1025 } 1025 }
1026 1026
1027 void WebFrameImpl::enableViewSourceMode(bool enable) 1027 void WebFrameImpl::enableViewSourceMode(bool enable)
1028 { 1028 {
1029 if (frame()) 1029 if (frame())
1030 frame()->setInViewSourceMode(enable); 1030 frame()->setInViewSourceMode(enable);
1031 } 1031 }
1032 1032
1033 bool WebFrameImpl::isViewSourceModeEnabled() const 1033 bool WebFrameImpl::isViewSourceModeEnabled() const
1034 { 1034 {
1035 if (!frame()) 1035 if (!frame())
1036 return false; 1036 return false;
1037 return frame()->inViewSourceMode(); 1037 return frame()->inViewSourceMode();
1038 } 1038 }
1039 1039
1040 void WebFrameImpl::setReferrerForRequest(WebURLRequest& request, const WebURL& r eferrerURL) 1040 void WebFrameImpl::setReferrerForRequest(WebURLRequest& request, const WebURL& r eferrerURL)
1041 { 1041 {
1042 String referrer = referrerURL.isEmpty() ? frame()->loader()->outgoingReferre r() : String(referrerURL.spec().utf16()); 1042 String referrer = referrerURL.isEmpty() ? frame()->loader().outgoingReferrer () : String(referrerURL.spec().utf16());
1043 referrer = SecurityPolicy::generateReferrerHeader(frame()->document()->refer rerPolicy(), request.url(), referrer); 1043 referrer = SecurityPolicy::generateReferrerHeader(frame()->document()->refer rerPolicy(), request.url(), referrer);
1044 if (referrer.isEmpty()) 1044 if (referrer.isEmpty())
1045 return; 1045 return;
1046 request.setHTTPHeaderField(WebString::fromUTF8("Referer"), referrer); 1046 request.setHTTPHeaderField(WebString::fromUTF8("Referer"), referrer);
1047 } 1047 }
1048 1048
1049 void WebFrameImpl::dispatchWillSendRequest(WebURLRequest& request) 1049 void WebFrameImpl::dispatchWillSendRequest(WebURLRequest& request)
1050 { 1050 {
1051 ResourceResponse response; 1051 ResourceResponse response;
1052 frame()->loader()->client()->dispatchWillSendRequest(0, 0, request.toMutable ResourceRequest(), response); 1052 frame()->loader().client()->dispatchWillSendRequest(0, 0, request.toMutableR esourceRequest(), response);
1053 } 1053 }
1054 1054
1055 WebURLLoader* WebFrameImpl::createAssociatedURLLoader(const WebURLLoaderOptions& options) 1055 WebURLLoader* WebFrameImpl::createAssociatedURLLoader(const WebURLLoaderOptions& options)
1056 { 1056 {
1057 return new AssociatedURLLoader(this, options); 1057 return new AssociatedURLLoader(this, options);
1058 } 1058 }
1059 1059
1060 unsigned WebFrameImpl::unloadListenerCount() const 1060 unsigned WebFrameImpl::unloadListenerCount() const
1061 { 1061 {
1062 return frame()->domWindow()->pendingUnloadEventListeners(); 1062 return frame()->domWindow()->pendingUnloadEventListeners();
1063 } 1063 }
1064 1064
1065 bool WebFrameImpl::willSuppressOpenerInNewFrame() const 1065 bool WebFrameImpl::willSuppressOpenerInNewFrame() const
1066 { 1066 {
1067 return frame()->loader()->suppressOpenerInNewFrame(); 1067 return frame()->loader().suppressOpenerInNewFrame();
1068 } 1068 }
1069 1069
1070 void WebFrameImpl::replaceSelection(const WebString& text) 1070 void WebFrameImpl::replaceSelection(const WebString& text)
1071 { 1071 {
1072 bool selectReplacement = false; 1072 bool selectReplacement = false;
1073 bool smartReplace = true; 1073 bool smartReplace = true;
1074 frame()->editor().replaceSelectionWithText(text, selectReplacement, smartRep lace); 1074 frame()->editor().replaceSelectionWithText(text, selectReplacement, smartRep lace);
1075 } 1075 }
1076 1076
1077 void WebFrameImpl::insertText(const WebString& text) 1077 void WebFrameImpl::insertText(const WebString& text)
(...skipping 1111 matching lines...) Expand 10 before | Expand all | Expand 10 after
2189 // onload event handler. 2189 // onload event handler.
2190 // Because the event handler may set webframe->mFrame to null, 2190 // Because the event handler may set webframe->mFrame to null,
2191 // it is necessary to check the value after calling init() and 2191 // it is necessary to check the value after calling init() and
2192 // return without loading URL. 2192 // return without loading URL.
2193 // NOTE: m_client will be null if this frame has been detached. 2193 // NOTE: m_client will be null if this frame has been detached.
2194 // (b:791612) 2194 // (b:791612)
2195 childFrame->init(); // create an empty document 2195 childFrame->init(); // create an empty document
2196 if (!childFrame->tree().parent()) 2196 if (!childFrame->tree().parent())
2197 return 0; 2197 return 0;
2198 2198
2199 HistoryItem* parentItem = frame()->loader()->history()->currentItem(); 2199 HistoryItem* parentItem = frame()->loader().history()->currentItem();
2200 HistoryItem* childItem = 0; 2200 HistoryItem* childItem = 0;
2201 // If we're moving in the back/forward list, we might want to replace the co ntent 2201 // If we're moving in the back/forward list, we might want to replace the co ntent
2202 // of this child frame with whatever was there at that point. 2202 // of this child frame with whatever was there at that point.
2203 if (parentItem && parentItem->children().size() && isBackForwardLoadType(fra me()->loader()->loadType()) && !frame()->document()->loadEventFinished()) 2203 if (parentItem && parentItem->children().size() && isBackForwardLoadType(fra me()->loader().loadType()) && !frame()->document()->loadEventFinished())
2204 childItem = parentItem->childItemWithTarget(childFrame->tree().uniqueNam e()); 2204 childItem = parentItem->childItemWithTarget(childFrame->tree().uniqueNam e());
2205 2205
2206 if (childItem) 2206 if (childItem)
2207 childFrame->loader()->loadHistoryItem(childItem); 2207 childFrame->loader().loadHistoryItem(childItem);
2208 else 2208 else
2209 childFrame->loader()->load(FrameLoadRequest(0, request.resourceRequest() , "_self")); 2209 childFrame->loader().load(FrameLoadRequest(0, request.resourceRequest(), "_self"));
2210 2210
2211 // A synchronous navigation (about:blank) would have already processed 2211 // A synchronous navigation (about:blank) would have already processed
2212 // onload, so it is possible for the frame to have already been destroyed by 2212 // onload, so it is possible for the frame to have already been destroyed by
2213 // script in the page. 2213 // script in the page.
2214 // NOTE: m_client will be null if this frame has been detached. 2214 // NOTE: m_client will be null if this frame has been detached.
2215 if (!childFrame->tree().parent()) 2215 if (!childFrame->tree().parent())
2216 return 0; 2216 return 0;
2217 2217
2218 return childFrame.release(); 2218 return childFrame.release();
2219 } 2219 }
(...skipping 25 matching lines...) Expand all
2245 frame()->view()->setInputEventsScaleFactorForEmulation(m_inputEventsScaleFac torForEmulation); 2245 frame()->view()->setInputEventsScaleFactorForEmulation(m_inputEventsScaleFac torForEmulation);
2246 2246
2247 if (isMainFrame) 2247 if (isMainFrame)
2248 webView->suppressInvalidations(false); 2248 webView->suppressInvalidations(false);
2249 } 2249 }
2250 2250
2251 WebFrameImpl* WebFrameImpl::fromFrame(Frame* frame) 2251 WebFrameImpl* WebFrameImpl::fromFrame(Frame* frame)
2252 { 2252 {
2253 if (!frame) 2253 if (!frame)
2254 return 0; 2254 return 0;
2255 return toFrameLoaderClientImpl(frame->loader()->client())->webFrame(); 2255 return toFrameLoaderClientImpl(frame->loader().client())->webFrame();
2256 } 2256 }
2257 2257
2258 WebFrameImpl* WebFrameImpl::fromFrameOwnerElement(Element* element) 2258 WebFrameImpl* WebFrameImpl::fromFrameOwnerElement(Element* element)
2259 { 2259 {
2260 // FIXME: Why do we check specifically for <iframe> and <frame> here? Why ca n't we get the WebFrameImpl from an <object> element, for example. 2260 // FIXME: Why do we check specifically for <iframe> and <frame> here? Why ca n't we get the WebFrameImpl from an <object> element, for example.
2261 if (!element || !element->isFrameOwnerElement() || (!element->hasTagName(HTM LNames::iframeTag) && !element->hasTagName(HTMLNames::frameTag))) 2261 if (!element || !element->isFrameOwnerElement() || (!element->hasTagName(HTM LNames::iframeTag) && !element->hasTagName(HTMLNames::frameTag)))
2262 return 0; 2262 return 0;
2263 return fromFrame(toHTMLFrameOwnerElement(element)->contentFrame()); 2263 return fromFrame(toHTMLFrameOwnerElement(element)->contentFrame());
2264 } 2264 }
2265 2265
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after
2518 2518
2519 // There is a possibility that the frame being detached was the only 2519 // There is a possibility that the frame being detached was the only
2520 // pending one. We need to make sure final replies can be sent. 2520 // pending one. We need to make sure final replies can be sent.
2521 flushCurrentScopingEffort(m_findRequestIdentifier); 2521 flushCurrentScopingEffort(m_findRequestIdentifier);
2522 2522
2523 cancelPendingScopingEffort(); 2523 cancelPendingScopingEffort();
2524 } 2524 }
2525 } 2525 }
2526 2526
2527 } // namespace WebKit 2527 } // namespace WebKit
OLDNEW
« no previous file with comments | « Source/web/FrameLoaderClientImpl.cpp ('k') | Source/web/WebHelperPluginImpl.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698