| 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 |