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

Side by Side Diff: content/renderer/render_view_impl.cc

Issue 404613005: Start using RenderFrameProxyHost objects. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/render_view_impl.h" 5 #include "content/renderer/render_view_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cmath> 8 #include <cmath>
9 9
10 #include "base/auto_reset.h" 10 #include "base/auto_reset.h"
(...skipping 744 matching lines...) Expand 10 before | Expand all | Expand 10 after
755 // Ensure we start with a valid next_page_id_ from the browser. 755 // Ensure we start with a valid next_page_id_ from the browser.
756 DCHECK_GE(next_page_id_, 0); 756 DCHECK_GE(next_page_id_, 0);
757 757
758 main_render_frame_.reset(RenderFrameImpl::Create( 758 main_render_frame_.reset(RenderFrameImpl::Create(
759 this, params->main_frame_routing_id)); 759 this, params->main_frame_routing_id));
760 // The main frame WebLocalFrame object is closed by 760 // The main frame WebLocalFrame object is closed by
761 // RenderFrameImpl::frameDetached(). 761 // RenderFrameImpl::frameDetached().
762 WebLocalFrame* web_frame = WebLocalFrame::create(main_render_frame_.get()); 762 WebLocalFrame* web_frame = WebLocalFrame::create(main_render_frame_.get());
763 main_render_frame_->SetWebFrame(web_frame); 763 main_render_frame_->SetWebFrame(web_frame);
764 764
765 if (params->proxy_routing_id != MSG_ROUTING_NONE) {
766 CHECK(params->swapped_out);
767 RenderFrameProxy* proxy =
768 RenderFrameProxy::CreateFrameProxy(params->proxy_routing_id,
769 params->main_frame_routing_id);
770 main_render_frame_->set_render_frame_proxy(proxy);
771 }
772
773 webwidget_ = WebView::create(this); 765 webwidget_ = WebView::create(this);
774 webwidget_mouse_lock_target_.reset(new WebWidgetLockTarget(webwidget_)); 766 webwidget_mouse_lock_target_.reset(new WebWidgetLockTarget(webwidget_));
775 767
776 const CommandLine& command_line = *CommandLine::ForCurrentProcess(); 768 const CommandLine& command_line = *CommandLine::ForCurrentProcess();
777 769
778 if (command_line.HasSwitch(switches::kStatsCollectionController)) 770 if (command_line.HasSwitch(switches::kStatsCollectionController))
779 stats_collection_observer_.reset(new StatsCollectionObserver(this)); 771 stats_collection_observer_.reset(new StatsCollectionObserver(this));
780 772
781 #if defined(OS_ANDROID) 773 #if defined(OS_ANDROID)
782 const std::string region_code = 774 const std::string region_code =
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
822 webview()->settings()->setCompositedScrollingForFramesEnabled( 814 webview()->settings()->setCompositedScrollingForFramesEnabled(
823 ShouldUseCompositedScrollingForFrames(device_scale_factor_)); 815 ShouldUseCompositedScrollingForFrames(device_scale_factor_));
824 webview()->settings()->setUseExpandedHeuristicsForGpuRasterization( 816 webview()->settings()->setUseExpandedHeuristicsForGpuRasterization(
825 ShouldUseExpandedHeuristicsForGpuRasterization()); 817 ShouldUseExpandedHeuristicsForGpuRasterization());
826 818
827 ApplyWebPreferences(webkit_preferences_, webview()); 819 ApplyWebPreferences(webkit_preferences_, webview());
828 820
829 webview()->settings()->setAllowConnectingInsecureWebSocket( 821 webview()->settings()->setAllowConnectingInsecureWebSocket(
830 command_line.HasSwitch(switches::kAllowInsecureWebSocketFromHttpsOrigin)); 822 command_line.HasSwitch(switches::kAllowInsecureWebSocketFromHttpsOrigin));
831 823
832 webview()->setMainFrame(main_render_frame_->GetWebFrame()); 824 RenderFrameProxy* proxy = NULL;
825 if (params->proxy_routing_id != MSG_ROUTING_NONE) {
826 CHECK(params->swapped_out);
827 proxy = RenderFrameProxy::CreateProxyToReplaceFrame(
828 main_render_frame_.get(), params->proxy_routing_id);
829 main_render_frame_->set_render_frame_proxy(proxy);
830 }
831
832 // In --site-per-process, just use the WebRemoteFrame as the main frame.
833 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kSitePerProcess) &&
834 proxy) {
835 webview()->setMainFrame(proxy->web_frame());
836 } else {
837 webview()->setMainFrame(main_render_frame_->GetWebFrame());
838 }
833 main_render_frame_->Initialize(); 839 main_render_frame_->Initialize();
834 840
835 if (switches::IsTouchDragDropEnabled()) 841 if (switches::IsTouchDragDropEnabled())
836 webview()->settings()->setTouchDragDropEnabled(true); 842 webview()->settings()->setTouchDragDropEnabled(true);
837 843
838 if (switches::IsTouchEditingEnabled()) 844 if (switches::IsTouchEditingEnabled())
839 webview()->settings()->setTouchEditingEnabled(true); 845 webview()->settings()->setTouchEditingEnabled(true);
840 846
841 if (!params->frame_name.empty()) 847 if (!params->frame_name.empty())
842 webview()->mainFrame()->setName(params->frame_name); 848 webview()->mainFrame()->setName(params->frame_name);
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
879 // If we have an opener_id but we weren't created by a renderer, then 885 // If we have an opener_id but we weren't created by a renderer, then
880 // it's the browser asking us to set our opener to another RenderView. 886 // it's the browser asking us to set our opener to another RenderView.
881 if (params->opener_id != MSG_ROUTING_NONE && !params->is_renderer_created) { 887 if (params->opener_id != MSG_ROUTING_NONE && !params->is_renderer_created) {
882 RenderViewImpl* opener_view = FromRoutingID(params->opener_id); 888 RenderViewImpl* opener_view = FromRoutingID(params->opener_id);
883 if (opener_view) 889 if (opener_view)
884 webview()->mainFrame()->setOpener(opener_view->webview()->mainFrame()); 890 webview()->mainFrame()->setOpener(opener_view->webview()->mainFrame());
885 } 891 }
886 892
887 // If we are initially swapped out, navigate to kSwappedOutURL. 893 // If we are initially swapped out, navigate to kSwappedOutURL.
888 // This ensures we are in a unique origin that others cannot script. 894 // This ensures we are in a unique origin that others cannot script.
889 if (is_swapped_out_) 895 if (is_swapped_out_ && webview()->mainFrame()->isWebLocalFrame())
890 NavigateToSwappedOutURL(webview()->mainFrame()); 896 NavigateToSwappedOutURL(webview()->mainFrame());
891 } 897 }
892 898
893 RenderViewImpl::~RenderViewImpl() { 899 RenderViewImpl::~RenderViewImpl() {
894 for (BitmapMap::iterator it = disambiguation_bitmaps_.begin(); 900 for (BitmapMap::iterator it = disambiguation_bitmaps_.begin();
895 it != disambiguation_bitmaps_.end(); 901 it != disambiguation_bitmaps_.end();
896 ++it) 902 ++it)
897 delete it->second; 903 delete it->second;
898 history_page_ids_.clear(); 904 history_page_ids_.clear();
899 905
(...skipping 435 matching lines...) Expand 10 before | Expand all | Expand 10 after
1335 if (webview()) 1341 if (webview())
1336 webview()->transferActiveWheelFlingAnimation(params); 1342 webview()->transferActiveWheelFlingAnimation(params);
1337 } 1343 }
1338 1344
1339 bool RenderViewImpl::HasIMETextFocus() { 1345 bool RenderViewImpl::HasIMETextFocus() {
1340 return GetTextInputType() != ui::TEXT_INPUT_TYPE_NONE; 1346 return GetTextInputType() != ui::TEXT_INPUT_TYPE_NONE;
1341 } 1347 }
1342 1348
1343 bool RenderViewImpl::OnMessageReceived(const IPC::Message& message) { 1349 bool RenderViewImpl::OnMessageReceived(const IPC::Message& message) {
1344 WebFrame* main_frame = webview() ? webview()->mainFrame() : NULL; 1350 WebFrame* main_frame = webview() ? webview()->mainFrame() : NULL;
1345 if (main_frame) 1351 if (main_frame && main_frame->isWebLocalFrame())
1346 GetContentClient()->SetActiveURL(main_frame->document().url()); 1352 GetContentClient()->SetActiveURL(main_frame->document().url());
1347 1353
1348 ObserverListBase<RenderViewObserver>::Iterator it(observers_); 1354 ObserverListBase<RenderViewObserver>::Iterator it(observers_);
1349 RenderViewObserver* observer; 1355 RenderViewObserver* observer;
1350 while ((observer = it.GetNext()) != NULL) 1356 while ((observer = it.GetNext()) != NULL)
1351 if (observer->OnMessageReceived(message)) 1357 if (observer->OnMessageReceived(message))
1352 return true; 1358 return true;
1353 1359
1354 bool handled = true; 1360 bool handled = true;
1355 IPC_BEGIN_MESSAGE_MAP(RenderViewImpl, message) 1361 IPC_BEGIN_MESSAGE_MAP(RenderViewImpl, message)
(...skipping 917 matching lines...) Expand 10 before | Expand all | Expand 10 after
2273 DocumentState* document_state = DocumentState::FromDataSource(ds); 2279 DocumentState* document_state = DocumentState::FromDataSource(ds);
2274 if (!document_state) { 2280 if (!document_state) {
2275 document_state = new DocumentState; 2281 document_state = new DocumentState;
2276 ds->setExtraData(document_state); 2282 ds->setExtraData(document_state);
2277 if (!content_initiated) 2283 if (!content_initiated)
2278 PopulateDocumentStateFromPending(document_state); 2284 PopulateDocumentStateFromPending(document_state);
2279 } 2285 }
2280 2286
2281 // Carry over the user agent override flag, if it exists. 2287 // Carry over the user agent override flag, if it exists.
2282 if (content_initiated && webview() && webview()->mainFrame() && 2288 if (content_initiated && webview() && webview()->mainFrame() &&
2289 webview()->mainFrame()->isWebLocalFrame() &&
2283 webview()->mainFrame()->dataSource()) { 2290 webview()->mainFrame()->dataSource()) {
2284 DocumentState* old_document_state = 2291 DocumentState* old_document_state =
2285 DocumentState::FromDataSource(webview()->mainFrame()->dataSource()); 2292 DocumentState::FromDataSource(webview()->mainFrame()->dataSource());
2286 if (old_document_state) { 2293 if (old_document_state) {
2287 InternalDocumentStateData* internal_data = 2294 InternalDocumentStateData* internal_data =
2288 InternalDocumentStateData::FromDocumentState(document_state); 2295 InternalDocumentStateData::FromDocumentState(document_state);
2289 InternalDocumentStateData* old_internal_data = 2296 InternalDocumentStateData* old_internal_data =
2290 InternalDocumentStateData::FromDocumentState(old_document_state); 2297 InternalDocumentStateData::FromDocumentState(old_document_state);
2291 internal_data->set_is_overriding_user_agent( 2298 internal_data->set_is_overriding_user_agent(
2292 old_internal_data->is_overriding_user_agent()); 2299 old_internal_data->is_overriding_user_agent());
(...skipping 15 matching lines...) Expand all
2308 // page. We are early enough in the request process here that we 2315 // page. We are early enough in the request process here that we
2309 // can still see the DocumentState of the previous page and set 2316 // can still see the DocumentState of the previous page and set
2310 // this value appropriately. 2317 // this value appropriately.
2311 // TODO(gavinp): catch the important case of navigation in a new 2318 // TODO(gavinp): catch the important case of navigation in a new
2312 // renderer process. 2319 // renderer process.
2313 if (webview()) { 2320 if (webview()) {
2314 if (WebFrame* old_frame = webview()->mainFrame()) { 2321 if (WebFrame* old_frame = webview()->mainFrame()) {
2315 const WebURLRequest& original_request = ds->originalRequest(); 2322 const WebURLRequest& original_request = ds->originalRequest();
2316 const GURL referrer( 2323 const GURL referrer(
2317 original_request.httpHeaderField(WebString::fromUTF8("Referer"))); 2324 original_request.httpHeaderField(WebString::fromUTF8("Referer")));
2318 if (!referrer.is_empty() && 2325 if (!referrer.is_empty() && old_frame->isWebLocalFrame() &&
2319 DocumentState::FromDataSource( 2326 DocumentState::FromDataSource(old_frame->dataSource())
2320 old_frame->dataSource())->was_prefetcher()) { 2327 ->was_prefetcher()) {
2321 for (; old_frame; old_frame = old_frame->traverseNext(false)) { 2328 for (; old_frame; old_frame = old_frame->traverseNext(false)) {
2322 WebDataSource* old_frame_ds = old_frame->dataSource(); 2329 WebDataSource* old_frame_ds = old_frame->dataSource();
2323 if (old_frame_ds && referrer == GURL(old_frame_ds->request().url())) { 2330 if (old_frame_ds && referrer == GURL(old_frame_ds->request().url())) {
2324 document_state->set_was_referred_by_prefetcher(true); 2331 document_state->set_was_referred_by_prefetcher(true);
2325 break; 2332 break;
2326 } 2333 }
2327 } 2334 }
2328 } 2335 }
2329 } 2336 }
2330 } 2337 }
(...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after
2651 if (!webview()) 2658 if (!webview())
2652 return; 2659 return;
2653 SendUpdateState(history_controller_->GetCurrentEntry()); 2660 SendUpdateState(history_controller_->GetCurrentEntry());
2654 } 2661 }
2655 2662
2656 blink::WebPlugin* RenderViewImpl::GetWebPluginForFind() { 2663 blink::WebPlugin* RenderViewImpl::GetWebPluginForFind() {
2657 if (!webview()) 2664 if (!webview())
2658 return NULL; 2665 return NULL;
2659 2666
2660 WebFrame* main_frame = webview()->mainFrame(); 2667 WebFrame* main_frame = webview()->mainFrame();
2661 if (main_frame->document().isPluginDocument()) 2668 if (main_frame->isWebLocalFrame() &&
2669 main_frame->document().isPluginDocument())
2662 return webview()->mainFrame()->document().to<WebPluginDocument>().plugin(); 2670 return webview()->mainFrame()->document().to<WebPluginDocument>().plugin();
2663 2671
2664 #if defined(ENABLE_PLUGINS) 2672 #if defined(ENABLE_PLUGINS)
2665 if (plugin_find_handler_) 2673 if (plugin_find_handler_)
2666 return plugin_find_handler_->container()->plugin(); 2674 return plugin_find_handler_->container()->plugin();
2667 #endif 2675 #endif
2668 2676
2669 return NULL; 2677 return NULL;
2670 } 2678 }
2671 2679
(...skipping 484 matching lines...) Expand 10 before | Expand all | Expand 10 after
3156 } 3164 }
3157 #endif // defined(USE_DEFAULT_RENDER_THEME) 3165 #endif // defined(USE_DEFAULT_RENDER_THEME)
3158 3166
3159 if (RenderThreadImpl::current()) // Will be NULL during unit tests. 3167 if (RenderThreadImpl::current()) // Will be NULL during unit tests.
3160 RenderThreadImpl::current()->SetFlingCurveParameters( 3168 RenderThreadImpl::current()->SetFlingCurveParameters(
3161 renderer_prefs.touchpad_fling_profile, 3169 renderer_prefs.touchpad_fling_profile,
3162 renderer_prefs.touchscreen_fling_profile); 3170 renderer_prefs.touchscreen_fling_profile);
3163 3171
3164 // If the zoom level for this page matches the old zoom default, and this 3172 // If the zoom level for this page matches the old zoom default, and this
3165 // is not a plugin, update the zoom level to match the new default. 3173 // is not a plugin, update the zoom level to match the new default.
3166 if (webview() && !webview()->mainFrame()->document().isPluginDocument() && 3174 if (webview() && webview()->mainFrame()->isWebLocalFrame() &&
3175 !webview()->mainFrame()->document().isPluginDocument() &&
3167 !ZoomValuesEqual(old_zoom_level, 3176 !ZoomValuesEqual(old_zoom_level,
3168 renderer_preferences_.default_zoom_level) && 3177 renderer_preferences_.default_zoom_level) &&
3169 ZoomValuesEqual(webview()->zoomLevel(), old_zoom_level)) { 3178 ZoomValuesEqual(webview()->zoomLevel(), old_zoom_level)) {
3170 webview()->setZoomLevel(renderer_preferences_.default_zoom_level); 3179 webview()->setZoomLevel(renderer_preferences_.default_zoom_level);
3171 zoomLevelChanged(); 3180 zoomLevelChanged();
3172 } 3181 }
3173 3182
3174 if (webview() && 3183 if (webview() &&
3175 old_accept_languages != renderer_preferences_.accept_languages) { 3184 old_accept_languages != renderer_preferences_.accept_languages) {
3176 webview()->acceptLanguagesChanged(); 3185 webview()->acceptLanguagesChanged();
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
3268 // We use loadRequest instead of loadHTMLString because the former commits 3277 // We use loadRequest instead of loadHTMLString because the former commits
3269 // synchronously. Otherwise a new navigation can interrupt the navigation 3278 // synchronously. Otherwise a new navigation can interrupt the navigation
3270 // to kSwappedOutURL. If that happens to be to the page we had been 3279 // to kSwappedOutURL. If that happens to be to the page we had been
3271 // showing, then WebKit will never send a commit and we'll be left spinning. 3280 // showing, then WebKit will never send a commit and we'll be left spinning.
3272 // TODO(creis): Until we move this to RenderFrame, we may call this from a 3281 // TODO(creis): Until we move this to RenderFrame, we may call this from a
3273 // swapped out RenderFrame while our own is_swapped_out_ is false. 3282 // swapped out RenderFrame while our own is_swapped_out_ is false.
3274 RenderFrameImpl* rf = RenderFrameImpl::FromWebFrame(frame); 3283 RenderFrameImpl* rf = RenderFrameImpl::FromWebFrame(frame);
3275 CHECK(is_swapped_out_ || rf->is_swapped_out()); 3284 CHECK(is_swapped_out_ || rf->is_swapped_out());
3276 GURL swappedOutURL(kSwappedOutURL); 3285 GURL swappedOutURL(kSwappedOutURL);
3277 WebURLRequest request(swappedOutURL); 3286 WebURLRequest request(swappedOutURL);
3278 frame->loadRequest(request); 3287 if (frame->isWebLocalFrame())
3288 frame->loadRequest(request);
3279 } 3289 }
3280 3290
3281 void RenderViewImpl::OnClosePage() { 3291 void RenderViewImpl::OnClosePage() {
3282 FOR_EACH_OBSERVER(RenderViewObserver, observers_, ClosePage()); 3292 FOR_EACH_OBSERVER(RenderViewObserver, observers_, ClosePage());
3283 // TODO(creis): We'd rather use webview()->Close() here, but that currently 3293 // TODO(creis): We'd rather use webview()->Close() here, but that currently
3284 // sets the WebView's delegate_ to NULL, preventing any JavaScript dialogs 3294 // sets the WebView's delegate_ to NULL, preventing any JavaScript dialogs
3285 // in the onunload handler from appearing. For now, we're bypassing that and 3295 // in the onunload handler from appearing. For now, we're bypassing that and
3286 // calling the FrameLoader's CloseURL method directly. This should be 3296 // calling the FrameLoader's CloseURL method directly. This should be
3287 // revisited to avoid having two ways to close a page. Having a single way 3297 // revisited to avoid having two ways to close a page. Having a single way
3288 // to close that can run onunload is also useful for fixing 3298 // to close that can run onunload is also useful for fixing
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
3370 (*i)->ViewFlushedPaint(); 3380 (*i)->ViewFlushedPaint();
3371 } 3381 }
3372 #endif 3382 #endif
3373 3383
3374 // If the RenderWidget is closing down then early-exit, otherwise we'll crash. 3384 // If the RenderWidget is closing down then early-exit, otherwise we'll crash.
3375 // See crbug.com/112921. 3385 // See crbug.com/112921.
3376 if (!webview()) 3386 if (!webview())
3377 return; 3387 return;
3378 3388
3379 WebFrame* main_frame = webview()->mainFrame(); 3389 WebFrame* main_frame = webview()->mainFrame();
3390 for (WebFrame* frame = main_frame; frame;
3391 frame = frame->traverseNext(false)) {
3392 if (frame->isWebLocalFrame())
3393 main_frame = frame;
3394 }
3380 3395
3381 // If we have a provisional frame we are between the start and commit stages 3396 // If we have a provisional frame we are between the start and commit stages
3382 // of loading and we don't want to save stats. 3397 // of loading and we don't want to save stats.
3383 if (!main_frame->provisionalDataSource()) { 3398 if (!main_frame->provisionalDataSource()) {
3384 WebDataSource* ds = main_frame->dataSource(); 3399 WebDataSource* ds = main_frame->dataSource();
3385 DocumentState* document_state = DocumentState::FromDataSource(ds); 3400 DocumentState* document_state = DocumentState::FromDataSource(ds);
3386 InternalDocumentStateData* data = 3401 InternalDocumentStateData* data =
3387 InternalDocumentStateData::FromDocumentState(document_state); 3402 InternalDocumentStateData::FromDocumentState(document_state);
3388 if (data->did_first_visually_non_empty_layout() && 3403 if (data->did_first_visually_non_empty_layout() &&
3389 !data->did_first_visually_non_empty_paint()) { 3404 !data->did_first_visually_non_empty_paint()) {
3390 data->set_did_first_visually_non_empty_paint(true); 3405 data->set_did_first_visually_non_empty_paint(true);
3391 Send(new ViewHostMsg_DidFirstVisuallyNonEmptyPaint(routing_id_)); 3406 Send(new ViewHostMsg_DidFirstVisuallyNonEmptyPaint(routing_id_));
3392 } 3407 }
3393 3408
3394 // TODO(jar): The following code should all be inside a method, probably in 3409 // TODO(jar): The following code should all be inside a method, probably in
3395 // NavigatorState. 3410 // NavigatorState.
3396 Time now = Time::Now(); 3411 Time now = Time::Now();
3397 if (document_state->first_paint_time().is_null()) { 3412 if (document_state->first_paint_time().is_null()) {
3398 document_state->set_first_paint_time(now); 3413 document_state->set_first_paint_time(now);
3399 } 3414 }
3400 if (document_state->first_paint_after_load_time().is_null() && 3415 if (document_state->first_paint_after_load_time().is_null() &&
3401 !document_state->finish_load_time().is_null()) { 3416 !document_state->finish_load_time().is_null()) {
3402 document_state->set_first_paint_after_load_time(now); 3417 document_state->set_first_paint_after_load_time(now);
3403 } 3418 }
3404 } 3419 }
3405 } 3420 }
3406 3421
3407 gfx::Vector2d RenderViewImpl::GetScrollOffset() { 3422 gfx::Vector2d RenderViewImpl::GetScrollOffset() {
3408 WebSize scroll_offset = webview()->mainFrame()->scrollOffset(); 3423 WebFrame* main_frame = webview()->mainFrame();
3424 for (WebFrame* frame = main_frame; frame;
3425 frame = frame->traverseNext(false)) {
3426 if (frame->isWebLocalFrame())
3427 main_frame = frame;
3428 }
3429
3430 WebSize scroll_offset = main_frame->scrollOffset();
3409 return gfx::Vector2d(scroll_offset.width, scroll_offset.height); 3431 return gfx::Vector2d(scroll_offset.width, scroll_offset.height);
3410 } 3432 }
3411 3433
3412 void RenderViewImpl::OnClearFocusedElement() { 3434 void RenderViewImpl::OnClearFocusedElement() {
3413 if (webview()) 3435 if (webview())
3414 webview()->clearFocusedElement(); 3436 webview()->clearFocusedElement();
3415 } 3437 }
3416 3438
3417 void RenderViewImpl::OnSetBackgroundOpaque(bool opaque) { 3439 void RenderViewImpl::OnSetBackgroundOpaque(bool opaque) {
3418 if (webview()) 3440 if (webview())
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
3602 for (plugin_it = plugin_delegates_.begin(); 3624 for (plugin_it = plugin_delegates_.begin();
3603 plugin_it != plugin_delegates_.end(); ++plugin_it) { 3625 plugin_it != plugin_delegates_.end(); ++plugin_it) {
3604 (*plugin_it)->SetContainerVisibility(true); 3626 (*plugin_it)->SetContainerVisibility(true);
3605 } 3627 }
3606 #endif // OS_MACOSX 3628 #endif // OS_MACOSX
3607 #endif // ENABLE_PLUGINS 3629 #endif // ENABLE_PLUGINS
3608 } 3630 }
3609 3631
3610 GURL RenderViewImpl::GetURLForGraphicsContext3D() { 3632 GURL RenderViewImpl::GetURLForGraphicsContext3D() {
3611 DCHECK(webview()); 3633 DCHECK(webview());
3612 if (webview()->mainFrame()) 3634 if (webview()->mainFrame()->isWebLocalFrame())
3613 return GURL(webview()->mainFrame()->document().url()); 3635 return GURL(webview()->mainFrame()->document().url());
3614 else 3636 else
3615 return GURL("chrome://gpu/RenderViewImpl::CreateGraphicsContext3D"); 3637 return GURL("chrome://gpu/RenderViewImpl::CreateGraphicsContext3D");
3616 } 3638 }
3617 3639
3618 void RenderViewImpl::OnSetFocus(bool enable) { 3640 void RenderViewImpl::OnSetFocus(bool enable) {
3619 RenderWidget::OnSetFocus(enable); 3641 RenderWidget::OnSetFocus(enable);
3620 3642
3621 #if defined(ENABLE_PLUGINS) 3643 #if defined(ENABLE_PLUGINS)
3622 if (webview() && webview()->isActive()) { 3644 if (webview() && webview()->isActive()) {
(...skipping 672 matching lines...) Expand 10 before | Expand all | Expand 10 after
4295 std::vector<gfx::Size> sizes; 4317 std::vector<gfx::Size> sizes;
4296 ConvertToFaviconSizes(icon_urls[i].sizes(), &sizes); 4318 ConvertToFaviconSizes(icon_urls[i].sizes(), &sizes);
4297 if (!url.isEmpty()) 4319 if (!url.isEmpty())
4298 urls.push_back( 4320 urls.push_back(
4299 FaviconURL(url, ToFaviconType(icon_urls[i].iconType()), sizes)); 4321 FaviconURL(url, ToFaviconType(icon_urls[i].iconType()), sizes));
4300 } 4322 }
4301 SendUpdateFaviconURL(urls); 4323 SendUpdateFaviconURL(urls);
4302 } 4324 }
4303 4325
4304 } // namespace content 4326 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698