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

Side by Side Diff: extensions/browser/guest_view/web_view/web_view_guest.cc

Issue 1087123002: Towards Decoupling GuestView from Extensions (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed lazyboy@'s comments. Removed unnecessary includes. Simplified GuestViewEvent. Created 5 years, 8 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "extensions/browser/guest_view/web_view/web_view_guest.h" 5 #include "extensions/browser/guest_view/web_view/web_view_guest.h"
6 6
7 #include "base/message_loop/message_loop.h" 7 #include "base/message_loop/message_loop.h"
8 #include "base/strings/stringprintf.h" 8 #include "base/strings/stringprintf.h"
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "content/public/browser/browser_context.h" 10 #include "content/public/browser/browser_context.h"
(...skipping 17 matching lines...) Expand all
28 #include "content/public/common/media_stream_request.h" 28 #include "content/public/common/media_stream_request.h"
29 #include "content/public/common/page_zoom.h" 29 #include "content/public/common/page_zoom.h"
30 #include "content/public/common/result_codes.h" 30 #include "content/public/common/result_codes.h"
31 #include "content/public/common/stop_find_action.h" 31 #include "content/public/common/stop_find_action.h"
32 #include "content/public/common/url_constants.h" 32 #include "content/public/common/url_constants.h"
33 #include "extensions/browser/api/declarative/rules_registry_service.h" 33 #include "extensions/browser/api/declarative/rules_registry_service.h"
34 #include "extensions/browser/api/extensions_api_client.h" 34 #include "extensions/browser/api/extensions_api_client.h"
35 #include "extensions/browser/api/guest_view/web_view/web_view_internal_api.h" 35 #include "extensions/browser/api/guest_view/web_view/web_view_internal_api.h"
36 #include "extensions/browser/api/web_request/web_request_api.h" 36 #include "extensions/browser/api/web_request/web_request_api.h"
37 #include "extensions/browser/extension_system.h" 37 #include "extensions/browser/extension_system.h"
38 #include "extensions/browser/guest_view/guest_view_event.h"
38 #include "extensions/browser/guest_view/guest_view_manager.h" 39 #include "extensions/browser/guest_view/guest_view_manager.h"
39 #include "extensions/browser/guest_view/web_view/web_view_constants.h" 40 #include "extensions/browser/guest_view/web_view/web_view_constants.h"
40 #include "extensions/browser/guest_view/web_view/web_view_permission_helper.h" 41 #include "extensions/browser/guest_view/web_view/web_view_permission_helper.h"
41 #include "extensions/browser/guest_view/web_view/web_view_permission_types.h" 42 #include "extensions/browser/guest_view/web_view/web_view_permission_types.h"
42 #include "extensions/browser/guest_view/web_view/web_view_renderer_state.h" 43 #include "extensions/browser/guest_view/web_view/web_view_renderer_state.h"
43 #include "extensions/common/constants.h" 44 #include "extensions/common/constants.h"
44 #include "extensions/common/extension_messages.h" 45 #include "extensions/common/extension_messages.h"
45 #include "extensions/common/guest_view/guest_view_constants.h" 46 #include "extensions/common/guest_view/guest_view_constants.h"
46 #include "extensions/strings/grit/extensions_strings.h" 47 #include "extensions/strings/grit/extensions_strings.h"
47 #include "ipc/ipc_message_macros.h" 48 #include "ipc/ipc_message_macros.h"
(...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after
301 } 302 }
302 303
303 void WebViewGuest::DidAttachToEmbedder() { 304 void WebViewGuest::DidAttachToEmbedder() {
304 ApplyAttributes(*attach_params()); 305 ApplyAttributes(*attach_params());
305 } 306 }
306 307
307 void WebViewGuest::DidDropLink(const GURL& url) { 308 void WebViewGuest::DidDropLink(const GURL& url) {
308 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue()); 309 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue());
309 args->SetString(guestview::kUrl, url.spec()); 310 args->SetString(guestview::kUrl, url.spec());
310 DispatchEventToView( 311 DispatchEventToView(
311 new GuestViewBase::Event(webview::kEventDropLink, args.Pass())); 312 new GuestViewEvent(webview::kEventDropLink, args.Pass()));
312 } 313 }
313 314
314 void WebViewGuest::DidInitialize(const base::DictionaryValue& create_params) { 315 void WebViewGuest::DidInitialize(const base::DictionaryValue& create_params) {
315 script_executor_.reset( 316 script_executor_.reset(
316 new ScriptExecutor(web_contents(), &script_observers_)); 317 new ScriptExecutor(web_contents(), &script_observers_));
317 318
318 notification_registrar_.Add(this, 319 notification_registrar_.Add(this,
319 content::NOTIFICATION_LOAD_COMPLETED_MAIN_FRAME, 320 content::NOTIFICATION_LOAD_COMPLETED_MAIN_FRAME,
320 content::Source<WebContents>(web_contents())); 321 content::Source<WebContents>(web_contents()));
321 322
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
361 partition->ClearData( 362 partition->ClearData(
362 storage_partition_removal_mask, 363 storage_partition_removal_mask,
363 content::StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL, GURL(), 364 content::StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL, GURL(),
364 content::StoragePartition::OriginMatcherFunction(), remove_since, 365 content::StoragePartition::OriginMatcherFunction(), remove_since,
365 base::Time::Now(), callback); 366 base::Time::Now(), callback);
366 } 367 }
367 368
368 void WebViewGuest::GuestViewDidStopLoading() { 369 void WebViewGuest::GuestViewDidStopLoading() {
369 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue()); 370 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue());
370 DispatchEventToView( 371 DispatchEventToView(
371 new GuestViewBase::Event(webview::kEventLoadStop, args.Pass())); 372 new GuestViewEvent(webview::kEventLoadStop, args.Pass()));
372 } 373 }
373 374
374 void WebViewGuest::EmbedderFullscreenToggled(bool entered_fullscreen) { 375 void WebViewGuest::EmbedderFullscreenToggled(bool entered_fullscreen) {
375 is_embedder_fullscreen_ = entered_fullscreen; 376 is_embedder_fullscreen_ = entered_fullscreen;
376 // If the embedder has got out of fullscreen, we get out of fullscreen 377 // If the embedder has got out of fullscreen, we get out of fullscreen
377 // mode as well. 378 // mode as well.
378 if (!entered_fullscreen) 379 if (!entered_fullscreen)
379 SetFullscreenState(false); 380 SetFullscreenState(false);
380 } 381 }
381 382
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
434 } 435 }
435 436
436 void WebViewGuest::GuestSizeChangedDueToAutoSize(const gfx::Size& old_size, 437 void WebViewGuest::GuestSizeChangedDueToAutoSize(const gfx::Size& old_size,
437 const gfx::Size& new_size) { 438 const gfx::Size& new_size) {
438 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue()); 439 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue());
439 args->SetInteger(webview::kOldHeight, old_size.height()); 440 args->SetInteger(webview::kOldHeight, old_size.height());
440 args->SetInteger(webview::kOldWidth, old_size.width()); 441 args->SetInteger(webview::kOldWidth, old_size.width());
441 args->SetInteger(webview::kNewHeight, new_size.height()); 442 args->SetInteger(webview::kNewHeight, new_size.height());
442 args->SetInteger(webview::kNewWidth, new_size.width()); 443 args->SetInteger(webview::kNewWidth, new_size.width());
443 DispatchEventToView( 444 DispatchEventToView(
444 new GuestViewBase::Event(webview::kEventSizeChanged, args.Pass())); 445 new GuestViewEvent(webview::kEventSizeChanged, args.Pass()));
445 } 446 }
446 447
447 bool WebViewGuest::IsAutoSizeSupported() const { 448 bool WebViewGuest::IsAutoSizeSupported() const {
448 return true; 449 return true;
449 } 450 }
450 451
451 bool WebViewGuest::IsDragAndDropEnabled() const { 452 bool WebViewGuest::IsDragAndDropEnabled() const {
452 return true; 453 return true;
453 } 454 }
454 455
455 void WebViewGuest::GuestZoomChanged(double old_zoom_level, 456 void WebViewGuest::GuestZoomChanged(double old_zoom_level,
456 double new_zoom_level) { 457 double new_zoom_level) {
457 // Dispatch the zoomchange event. 458 // Dispatch the zoomchange event.
458 double old_zoom_factor = ConvertZoomLevelToZoomFactor(old_zoom_level); 459 double old_zoom_factor = ConvertZoomLevelToZoomFactor(old_zoom_level);
459 double new_zoom_factor = ConvertZoomLevelToZoomFactor(new_zoom_level); 460 double new_zoom_factor = ConvertZoomLevelToZoomFactor(new_zoom_level);
460 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue()); 461 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue());
461 args->SetDouble(webview::kOldZoomFactor, old_zoom_factor); 462 args->SetDouble(webview::kOldZoomFactor, old_zoom_factor);
462 args->SetDouble(webview::kNewZoomFactor, new_zoom_factor); 463 args->SetDouble(webview::kNewZoomFactor, new_zoom_factor);
463 DispatchEventToView( 464 DispatchEventToView(
464 new GuestViewBase::Event(webview::kEventZoomChange, args.Pass())); 465 new GuestViewEvent(webview::kEventZoomChange, args.Pass()));
465 } 466 }
466 467
467 void WebViewGuest::WillDestroy() { 468 void WebViewGuest::WillDestroy() {
468 if (!attached() && GetOpener()) 469 if (!attached() && GetOpener())
469 GetOpener()->pending_new_windows_.erase(this); 470 GetOpener()->pending_new_windows_.erase(this);
470 } 471 }
471 472
472 bool WebViewGuest::AddMessageToConsole(WebContents* source, 473 bool WebViewGuest::AddMessageToConsole(WebContents* source,
473 int32 level, 474 int32 level,
474 const base::string16& message, 475 const base::string16& message,
475 int32 line_no, 476 int32 line_no,
476 const base::string16& source_id) { 477 const base::string16& source_id) {
477 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue()); 478 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue());
478 // Log levels are from base/logging.h: LogSeverity. 479 // Log levels are from base/logging.h: LogSeverity.
479 args->SetInteger(webview::kLevel, level); 480 args->SetInteger(webview::kLevel, level);
480 args->SetString(webview::kMessage, message); 481 args->SetString(webview::kMessage, message);
481 args->SetInteger(webview::kLine, line_no); 482 args->SetInteger(webview::kLine, line_no);
482 args->SetString(webview::kSourceId, source_id); 483 args->SetString(webview::kSourceId, source_id);
483 DispatchEventToView( 484 DispatchEventToView(
484 new GuestViewBase::Event(webview::kEventConsoleMessage, args.Pass())); 485 new GuestViewEvent(webview::kEventConsoleMessage, args.Pass()));
485 return true; 486 return true;
486 } 487 }
487 488
488 void WebViewGuest::CloseContents(WebContents* source) { 489 void WebViewGuest::CloseContents(WebContents* source) {
489 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue()); 490 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue());
490 DispatchEventToView( 491 DispatchEventToView(
491 new GuestViewBase::Event(webview::kEventClose, args.Pass())); 492 new GuestViewEvent(webview::kEventClose, args.Pass()));
492 } 493 }
493 494
494 void WebViewGuest::FindReply(WebContents* source, 495 void WebViewGuest::FindReply(WebContents* source,
495 int request_id, 496 int request_id,
496 int number_of_matches, 497 int number_of_matches,
497 const gfx::Rect& selection_rect, 498 const gfx::Rect& selection_rect,
498 int active_match_ordinal, 499 int active_match_ordinal,
499 bool final_update) { 500 bool final_update) {
500 find_helper_.FindReply(request_id, 501 find_helper_.FindReply(request_id,
501 number_of_matches, 502 number_of_matches,
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
534 const blink::WebGestureEvent& event) { 535 const blink::WebGestureEvent& event) {
535 return !allow_scaling_ && GuestViewBase::PreHandleGestureEvent(source, event); 536 return !allow_scaling_ && GuestViewBase::PreHandleGestureEvent(source, event);
536 } 537 }
537 538
538 void WebViewGuest::LoadProgressChanged(content::WebContents* source, 539 void WebViewGuest::LoadProgressChanged(content::WebContents* source,
539 double progress) { 540 double progress) {
540 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue()); 541 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue());
541 args->SetString(guestview::kUrl, web_contents()->GetURL().spec()); 542 args->SetString(guestview::kUrl, web_contents()->GetURL().spec());
542 args->SetDouble(webview::kProgress, progress); 543 args->SetDouble(webview::kProgress, progress);
543 DispatchEventToView( 544 DispatchEventToView(
544 new GuestViewBase::Event(webview::kEventLoadProgress, args.Pass())); 545 new GuestViewEvent(webview::kEventLoadProgress, args.Pass()));
545 } 546 }
546 547
547 void WebViewGuest::LoadAbort(bool is_top_level, 548 void WebViewGuest::LoadAbort(bool is_top_level,
548 const GURL& url, 549 const GURL& url,
549 int error_code, 550 int error_code,
550 const std::string& error_type) { 551 const std::string& error_type) {
551 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue()); 552 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue());
552 args->SetBoolean(guestview::kIsTopLevel, is_top_level); 553 args->SetBoolean(guestview::kIsTopLevel, is_top_level);
553 args->SetString(guestview::kUrl, url.possibly_invalid_spec()); 554 args->SetString(guestview::kUrl, url.possibly_invalid_spec());
554 args->SetInteger(guestview::kCode, error_code); 555 args->SetInteger(guestview::kCode, error_code);
555 args->SetString(guestview::kReason, error_type); 556 args->SetString(guestview::kReason, error_type);
556 DispatchEventToView( 557 DispatchEventToView(
557 new GuestViewBase::Event(webview::kEventLoadAbort, args.Pass())); 558 new GuestViewEvent(webview::kEventLoadAbort, args.Pass()));
558 } 559 }
559 560
560 void WebViewGuest::CreateNewGuestWebViewWindow( 561 void WebViewGuest::CreateNewGuestWebViewWindow(
561 const content::OpenURLParams& params) { 562 const content::OpenURLParams& params) {
562 GuestViewManager* guest_manager = 563 GuestViewManager* guest_manager =
563 GuestViewManager::FromBrowserContext(browser_context()); 564 GuestViewManager::FromBrowserContext(browser_context());
564 // Set the attach params to use the same partition as the opener. 565 // Set the attach params to use the same partition as the opener.
565 // We pull the partition information from the site's URL, which is of the 566 // We pull the partition information from the site's URL, which is of the
566 // form guest://site/{persist}?{partition_name}. 567 // form guest://site/{persist}?{partition_name}.
567 const GURL& site_url = web_contents()->GetSiteInstance()->GetSiteURL(); 568 const GURL& site_url = web_contents()->GetSiteInstance()->GetSiteURL();
(...skipping 27 matching lines...) Expand all
595 new_guest->web_contents()); 596 new_guest->web_contents());
596 } 597 }
597 598
598 // TODO(fsamuel): Find a reliable way to test the 'responsive' and 599 // TODO(fsamuel): Find a reliable way to test the 'responsive' and
599 // 'unresponsive' events. 600 // 'unresponsive' events.
600 void WebViewGuest::RendererResponsive(content::WebContents* source) { 601 void WebViewGuest::RendererResponsive(content::WebContents* source) {
601 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue()); 602 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue());
602 args->SetInteger(webview::kProcessId, 603 args->SetInteger(webview::kProcessId,
603 web_contents()->GetRenderProcessHost()->GetID()); 604 web_contents()->GetRenderProcessHost()->GetID());
604 DispatchEventToView( 605 DispatchEventToView(
605 new GuestViewBase::Event(webview::kEventResponsive, args.Pass())); 606 new GuestViewEvent(webview::kEventResponsive, args.Pass()));
606 } 607 }
607 608
608 void WebViewGuest::RendererUnresponsive(content::WebContents* source) { 609 void WebViewGuest::RendererUnresponsive(content::WebContents* source) {
609 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue()); 610 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue());
610 args->SetInteger(webview::kProcessId, 611 args->SetInteger(webview::kProcessId,
611 web_contents()->GetRenderProcessHost()->GetID()); 612 web_contents()->GetRenderProcessHost()->GetID());
612 DispatchEventToView( 613 DispatchEventToView(
613 new GuestViewBase::Event(webview::kEventUnresponsive, args.Pass())); 614 new GuestViewEvent(webview::kEventUnresponsive, args.Pass()));
614 } 615 }
615 616
616 void WebViewGuest::Observe(int type, 617 void WebViewGuest::Observe(int type,
617 const content::NotificationSource& source, 618 const content::NotificationSource& source,
618 const content::NotificationDetails& details) { 619 const content::NotificationDetails& details) {
619 switch (type) { 620 switch (type) {
620 case content::NOTIFICATION_LOAD_COMPLETED_MAIN_FRAME: { 621 case content::NOTIFICATION_LOAD_COMPLETED_MAIN_FRAME: {
621 DCHECK_EQ(content::Source<WebContents>(source).ptr(), web_contents()); 622 DCHECK_EQ(content::Source<WebContents>(source).ptr(), web_contents());
622 if (content::Source<WebContents>(source).ptr() == web_contents()) 623 if (content::Source<WebContents>(source).ptr() == web_contents())
623 LoadHandlerCalled(); 624 LoadHandlerCalled();
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
752 .GetLastCommittedEntry() 753 .GetLastCommittedEntry()
753 ->GetBaseURLForDataURL() 754 ->GetBaseURLForDataURL()
754 .spec()); 755 .spec());
755 args->SetInteger(webview::kInternalCurrentEntryIndex, 756 args->SetInteger(webview::kInternalCurrentEntryIndex,
756 web_contents()->GetController().GetCurrentEntryIndex()); 757 web_contents()->GetController().GetCurrentEntryIndex());
757 args->SetInteger(webview::kInternalEntryCount, 758 args->SetInteger(webview::kInternalEntryCount,
758 web_contents()->GetController().GetEntryCount()); 759 web_contents()->GetController().GetEntryCount());
759 args->SetInteger(webview::kInternalProcessId, 760 args->SetInteger(webview::kInternalProcessId,
760 web_contents()->GetRenderProcessHost()->GetID()); 761 web_contents()->GetRenderProcessHost()->GetID());
761 DispatchEventToView( 762 DispatchEventToView(
762 new GuestViewBase::Event(webview::kEventLoadCommit, args.Pass())); 763 new GuestViewEvent(webview::kEventLoadCommit, args.Pass()));
763 764
764 find_helper_.CancelAllFindSessions(); 765 find_helper_.CancelAllFindSessions();
765 766
766 if (web_view_guest_delegate_) { 767 if (web_view_guest_delegate_) {
767 web_view_guest_delegate_->OnDidCommitProvisionalLoadForFrame( 768 web_view_guest_delegate_->OnDidCommitProvisionalLoadForFrame(
768 !render_frame_host->GetParent()); 769 !render_frame_host->GetParent());
769 } 770 }
770 } 771 }
771 772
772 void WebViewGuest::DidFailProvisionalLoad( 773 void WebViewGuest::DidFailProvisionalLoad(
773 content::RenderFrameHost* render_frame_host, 774 content::RenderFrameHost* render_frame_host,
774 const GURL& validated_url, 775 const GURL& validated_url,
775 int error_code, 776 int error_code,
776 const base::string16& error_description) { 777 const base::string16& error_description) {
777 LoadAbort(!render_frame_host->GetParent(), validated_url, error_code, 778 LoadAbort(!render_frame_host->GetParent(), validated_url, error_code,
778 net::ErrorToShortString(error_code)); 779 net::ErrorToShortString(error_code));
779 } 780 }
780 781
781 void WebViewGuest::DidStartProvisionalLoadForFrame( 782 void WebViewGuest::DidStartProvisionalLoadForFrame(
782 content::RenderFrameHost* render_frame_host, 783 content::RenderFrameHost* render_frame_host,
783 const GURL& validated_url, 784 const GURL& validated_url,
784 bool is_error_page, 785 bool is_error_page,
785 bool is_iframe_srcdoc) { 786 bool is_iframe_srcdoc) {
786 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue()); 787 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue());
787 args->SetString(guestview::kUrl, validated_url.spec()); 788 args->SetString(guestview::kUrl, validated_url.spec());
788 args->SetBoolean(guestview::kIsTopLevel, !render_frame_host->GetParent()); 789 args->SetBoolean(guestview::kIsTopLevel, !render_frame_host->GetParent());
789 DispatchEventToView( 790 DispatchEventToView(
790 new GuestViewBase::Event(webview::kEventLoadStart, args.Pass())); 791 new GuestViewEvent(webview::kEventLoadStart, args.Pass()));
791 } 792 }
792 793
793 void WebViewGuest::DocumentLoadedInFrame( 794 void WebViewGuest::DocumentLoadedInFrame(
794 content::RenderFrameHost* render_frame_host) { 795 content::RenderFrameHost* render_frame_host) {
795 if (web_view_guest_delegate_) 796 if (web_view_guest_delegate_)
796 web_view_guest_delegate_->OnDocumentLoadedInFrame(render_frame_host); 797 web_view_guest_delegate_->OnDocumentLoadedInFrame(render_frame_host);
797 } 798 }
798 799
799 void WebViewGuest::RenderProcessGone(base::TerminationStatus status) { 800 void WebViewGuest::RenderProcessGone(base::TerminationStatus status) {
800 // Cancel all find sessions in progress. 801 // Cancel all find sessions in progress.
801 find_helper_.CancelAllFindSessions(); 802 find_helper_.CancelAllFindSessions();
802 803
803 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue()); 804 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue());
804 args->SetInteger(webview::kProcessId, 805 args->SetInteger(webview::kProcessId,
805 web_contents()->GetRenderProcessHost()->GetID()); 806 web_contents()->GetRenderProcessHost()->GetID());
806 args->SetString(webview::kReason, TerminationStatusToString(status)); 807 args->SetString(webview::kReason, TerminationStatusToString(status));
807 DispatchEventToView( 808 DispatchEventToView(
808 new GuestViewBase::Event(webview::kEventExit, args.Pass())); 809 new GuestViewEvent(webview::kEventExit, args.Pass()));
809 } 810 }
810 811
811 void WebViewGuest::UserAgentOverrideSet(const std::string& user_agent) { 812 void WebViewGuest::UserAgentOverrideSet(const std::string& user_agent) {
812 content::NavigationController& controller = web_contents()->GetController(); 813 content::NavigationController& controller = web_contents()->GetController();
813 content::NavigationEntry* entry = controller.GetVisibleEntry(); 814 content::NavigationEntry* entry = controller.GetVisibleEntry();
814 if (!entry) 815 if (!entry)
815 return; 816 return;
816 entry->SetIsOverridingUserAgent(!user_agent.empty()); 817 entry->SetIsOverridingUserAgent(!user_agent.empty());
817 web_contents()->GetController().Reload(false); 818 web_contents()->GetController().Reload(false);
818 } 819 }
819 820
820 void WebViewGuest::FrameNameChanged(RenderFrameHost* render_frame_host, 821 void WebViewGuest::FrameNameChanged(RenderFrameHost* render_frame_host,
821 const std::string& name) { 822 const std::string& name) {
822 if (render_frame_host->GetParent()) 823 if (render_frame_host->GetParent())
823 return; 824 return;
824 825
825 if (name_ == name) 826 if (name_ == name)
826 return; 827 return;
827 828
828 ReportFrameNameChange(name); 829 ReportFrameNameChange(name);
829 } 830 }
830 831
831 void WebViewGuest::ReportFrameNameChange(const std::string& name) { 832 void WebViewGuest::ReportFrameNameChange(const std::string& name) {
832 name_ = name; 833 name_ = name;
833 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue()); 834 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue());
834 args->SetString(webview::kName, name); 835 args->SetString(webview::kName, name);
835 DispatchEventToView( 836 DispatchEventToView(
836 new GuestViewBase::Event(webview::kEventFrameNameChanged, args.Pass())); 837 new GuestViewEvent(webview::kEventFrameNameChanged, args.Pass()));
837 } 838 }
838 839
839 void WebViewGuest::LoadHandlerCalled() { 840 void WebViewGuest::LoadHandlerCalled() {
840 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue()); 841 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue());
841 DispatchEventToView( 842 DispatchEventToView(
842 new GuestViewBase::Event(webview::kEventContentLoad, args.Pass())); 843 new GuestViewEvent(webview::kEventContentLoad, args.Pass()));
843 } 844 }
844 845
845 void WebViewGuest::LoadRedirect(const GURL& old_url, 846 void WebViewGuest::LoadRedirect(const GURL& old_url,
846 const GURL& new_url, 847 const GURL& new_url,
847 bool is_top_level) { 848 bool is_top_level) {
848 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue()); 849 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue());
849 args->SetBoolean(guestview::kIsTopLevel, is_top_level); 850 args->SetBoolean(guestview::kIsTopLevel, is_top_level);
850 args->SetString(webview::kNewURL, new_url.spec()); 851 args->SetString(webview::kNewURL, new_url.spec());
851 args->SetString(webview::kOldURL, old_url.spec()); 852 args->SetString(webview::kOldURL, old_url.spec());
852 DispatchEventToView( 853 DispatchEventToView(
853 new GuestViewBase::Event(webview::kEventLoadRedirect, args.Pass())); 854 new GuestViewEvent(webview::kEventLoadRedirect, args.Pass()));
854 } 855 }
855 856
856 void WebViewGuest::PushWebViewStateToIOThread() { 857 void WebViewGuest::PushWebViewStateToIOThread() {
857 const GURL& site_url = web_contents()->GetSiteInstance()->GetSiteURL(); 858 const GURL& site_url = web_contents()->GetSiteInstance()->GetSiteURL();
858 std::string partition_domain; 859 std::string partition_domain;
859 std::string partition_id; 860 std::string partition_id;
860 bool in_memory; 861 bool in_memory;
861 if (!GetGuestPartitionConfigForSite( 862 if (!GetGuestPartitionConfigForSite(
862 site_url, &partition_domain, &partition_id, &in_memory)) { 863 site_url, &partition_domain, &partition_id, &in_memory)) {
863 NOTREACHED(); 864 NOTREACHED();
(...skipping 528 matching lines...) Expand 10 before | Expand all | Expand 10 after
1392 1393
1393 bool was_fullscreen = is_guest_fullscreen_; 1394 bool was_fullscreen = is_guest_fullscreen_;
1394 is_guest_fullscreen_ = is_fullscreen; 1395 is_guest_fullscreen_ = is_fullscreen;
1395 // If the embedder entered fullscreen because of us, it should exit fullscreen 1396 // If the embedder entered fullscreen because of us, it should exit fullscreen
1396 // when we exit fullscreen. 1397 // when we exit fullscreen.
1397 if (was_fullscreen && GuestMadeEmbedderFullscreen()) { 1398 if (was_fullscreen && GuestMadeEmbedderFullscreen()) {
1398 // Dispatch a message so we can call document.webkitCancelFullscreen() 1399 // Dispatch a message so we can call document.webkitCancelFullscreen()
1399 // on the embedder. 1400 // on the embedder.
1400 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue()); 1401 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue());
1401 DispatchEventToView( 1402 DispatchEventToView(
1402 new GuestViewBase::Event(webview::kEventExitFullscreen, args.Pass())); 1403 new GuestViewEvent(webview::kEventExitFullscreen, args.Pass()));
1403 } 1404 }
1404 // Since we changed fullscreen state, sending a Resize message ensures that 1405 // Since we changed fullscreen state, sending a Resize message ensures that
1405 // renderer/ sees the change. 1406 // renderer/ sees the change.
1406 web_contents()->GetRenderViewHost()->WasResized(); 1407 web_contents()->GetRenderViewHost()->WasResized();
1407 } 1408 }
1408 1409
1409 } // namespace extensions 1410 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698