OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 // Implements the Chrome Extensions WebNavigation API. | 5 // Implements the Chrome Extensions WebNavigation API. |
6 | 6 |
7 #include "chrome/browser/extensions/extension_webnavigation_api.h" | 7 #include "chrome/browser/extensions/extension_webnavigation_api.h" |
8 | 8 |
9 #include "base/json/json_writer.h" | 9 #include "base/json/json_writer.h" |
10 #include "base/lazy_instance.h" | 10 #include "base/lazy_instance.h" |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
87 json_args); | 87 json_args); |
88 } | 88 } |
89 | 89 |
90 // Constructs and dispatches an onCommitted or onReferenceFragmentUpdated | 90 // Constructs and dispatches an onCommitted or onReferenceFragmentUpdated |
91 // event. | 91 // event. |
92 void DispatchOnCommitted(const char* event_name, | 92 void DispatchOnCommitted(const char* event_name, |
93 TabContents* tab_contents, | 93 TabContents* tab_contents, |
94 int64 frame_id, | 94 int64 frame_id, |
95 bool is_main_frame, | 95 bool is_main_frame, |
96 const GURL& url, | 96 const GURL& url, |
97 PageTransition::Type transition_type) { | 97 content::PageTransition transition_type) { |
98 ListValue args; | 98 ListValue args; |
99 DictionaryValue* dict = new DictionaryValue(); | 99 DictionaryValue* dict = new DictionaryValue(); |
100 dict->SetInteger(keys::kTabIdKey, | 100 dict->SetInteger(keys::kTabIdKey, |
101 ExtensionTabUtil::GetTabId(tab_contents)); | 101 ExtensionTabUtil::GetTabId(tab_contents)); |
102 dict->SetString(keys::kUrlKey, url.spec()); | 102 dict->SetString(keys::kUrlKey, url.spec()); |
103 dict->SetInteger(keys::kFrameIdKey, GetFrameId(is_main_frame, frame_id)); | 103 dict->SetInteger(keys::kFrameIdKey, GetFrameId(is_main_frame, frame_id)); |
104 dict->SetString(keys::kTransitionTypeKey, | 104 dict->SetString( |
105 PageTransition::CoreTransitionString(transition_type)); | 105 keys::kTransitionTypeKey, |
| 106 content::PageTransitionGetCoreTransitionString(transition_type)); |
106 ListValue* qualifiers = new ListValue(); | 107 ListValue* qualifiers = new ListValue(); |
107 if (transition_type & PageTransition::CLIENT_REDIRECT) | 108 if (transition_type & content::PAGE_TRANSITION_CLIENT_REDIRECT) |
108 qualifiers->Append(Value::CreateStringValue("client_redirect")); | 109 qualifiers->Append(Value::CreateStringValue("client_redirect")); |
109 if (transition_type & PageTransition::SERVER_REDIRECT) | 110 if (transition_type & content::PAGE_TRANSITION_SERVER_REDIRECT) |
110 qualifiers->Append(Value::CreateStringValue("server_redirect")); | 111 qualifiers->Append(Value::CreateStringValue("server_redirect")); |
111 if (transition_type & PageTransition::FORWARD_BACK) | 112 if (transition_type & content::PAGE_TRANSITION_FORWARD_BACK) |
112 qualifiers->Append(Value::CreateStringValue("forward_back")); | 113 qualifiers->Append(Value::CreateStringValue("forward_back")); |
113 if (transition_type & PageTransition::FROM_ADDRESS_BAR) | 114 if (transition_type & content::PAGE_TRANSITION_FROM_ADDRESS_BAR) |
114 qualifiers->Append(Value::CreateStringValue("from_address_bar")); | 115 qualifiers->Append(Value::CreateStringValue("from_address_bar")); |
115 dict->Set(keys::kTransitionQualifiersKey, qualifiers); | 116 dict->Set(keys::kTransitionQualifiersKey, qualifiers); |
116 dict->SetDouble(keys::kTimeStampKey, MilliSecondsFromTime(base::Time::Now())); | 117 dict->SetDouble(keys::kTimeStampKey, MilliSecondsFromTime(base::Time::Now())); |
117 args.Append(dict); | 118 args.Append(dict); |
118 | 119 |
119 std::string json_args; | 120 std::string json_args; |
120 base::JSONWriter::Write(&args, false, &json_args); | 121 base::JSONWriter::Write(&args, false, &json_args); |
121 DispatchEvent(tab_contents->browser_context(), event_name, json_args); | 122 DispatchEvent(tab_contents->browser_context(), event_name, json_args); |
122 } | 123 } |
123 | 124 |
(...skipping 378 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
502 if (!navigation_state_.CanSendEvents(frame_id)) | 503 if (!navigation_state_.CanSendEvents(frame_id)) |
503 return; | 504 return; |
504 DispatchOnBeforeNavigate( | 505 DispatchOnBeforeNavigate( |
505 tab_contents(), frame_id, is_main_frame, validated_url); | 506 tab_contents(), frame_id, is_main_frame, validated_url); |
506 } | 507 } |
507 | 508 |
508 void ExtensionWebNavigationTabObserver::DidCommitProvisionalLoadForFrame( | 509 void ExtensionWebNavigationTabObserver::DidCommitProvisionalLoadForFrame( |
509 int64 frame_id, | 510 int64 frame_id, |
510 bool is_main_frame, | 511 bool is_main_frame, |
511 const GURL& url, | 512 const GURL& url, |
512 PageTransition::Type transition_type) { | 513 content::PageTransition transition_type) { |
513 if (!navigation_state_.CanSendEvents(frame_id)) | 514 if (!navigation_state_.CanSendEvents(frame_id)) |
514 return; | 515 return; |
515 | 516 |
516 bool is_reference_fragment_navigation = | 517 bool is_reference_fragment_navigation = |
517 IsReferenceFragmentNavigation(frame_id, url); | 518 IsReferenceFragmentNavigation(frame_id, url); |
518 | 519 |
519 // Update the URL as it might have changed. | 520 // Update the URL as it might have changed. |
520 navigation_state_.TrackFrame(frame_id, | 521 navigation_state_.TrackFrame(frame_id, |
521 url, | 522 url, |
522 is_main_frame, | 523 is_main_frame, |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
575 navigation_state_.GetUrl(frame_id), | 576 navigation_state_.GetUrl(frame_id), |
576 navigation_state_.IsMainFrame(frame_id), | 577 navigation_state_.IsMainFrame(frame_id), |
577 frame_id); | 578 frame_id); |
578 } | 579 } |
579 | 580 |
580 void ExtensionWebNavigationTabObserver::DidOpenRequestedURL( | 581 void ExtensionWebNavigationTabObserver::DidOpenRequestedURL( |
581 TabContents* new_contents, | 582 TabContents* new_contents, |
582 const GURL& url, | 583 const GURL& url, |
583 const GURL& referrer, | 584 const GURL& referrer, |
584 WindowOpenDisposition disposition, | 585 WindowOpenDisposition disposition, |
585 PageTransition::Type transition, | 586 content::PageTransition transition, |
586 int64 source_frame_id) { | 587 int64 source_frame_id) { |
587 if (!navigation_state_.CanSendEvents(source_frame_id)) | 588 if (!navigation_state_.CanSendEvents(source_frame_id)) |
588 return; | 589 return; |
589 | 590 |
590 // We only send the onCreatedNavigationTarget if we end up creating a new | 591 // We only send the onCreatedNavigationTarget if we end up creating a new |
591 // window. | 592 // window. |
592 if (disposition != SINGLETON_TAB && | 593 if (disposition != SINGLETON_TAB && |
593 disposition != NEW_FOREGROUND_TAB && | 594 disposition != NEW_FOREGROUND_TAB && |
594 disposition != NEW_BACKGROUND_TAB && | 595 disposition != NEW_BACKGROUND_TAB && |
595 disposition != NEW_POPUP && | 596 disposition != NEW_POPUP && |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
720 keys::kFrameIdKey, | 721 keys::kFrameIdKey, |
721 GetFrameId(navigation_state.IsMainFrame(*frame), *frame)); | 722 GetFrameId(navigation_state.IsMainFrame(*frame), *frame)); |
722 frameDict->SetBoolean( | 723 frameDict->SetBoolean( |
723 keys::kErrorOccurredKey, | 724 keys::kErrorOccurredKey, |
724 navigation_state.GetErrorOccurredInFrame(*frame)); | 725 navigation_state.GetErrorOccurredInFrame(*frame)); |
725 resultList->Append(frameDict); | 726 resultList->Append(frameDict); |
726 } | 727 } |
727 result_.reset(resultList); | 728 result_.reset(resultList); |
728 return true; | 729 return true; |
729 } | 730 } |
OLD | NEW |