| OLD | NEW |
| 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 "chrome/browser/extensions/api/offscreen_tabs/offscreen_tabs_api.h" | 5 #include "chrome/browser/extensions/api/offscreen_tabs/offscreen_tabs_api.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/hash_tables.h" | 10 #include "base/hash_tables.h" |
| (...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 257 | 257 |
| 258 void OffscreenTab::Observe(int type, | 258 void OffscreenTab::Observe(int type, |
| 259 const NotificationSource& source, | 259 const NotificationSource& source, |
| 260 const NotificationDetails& details) { | 260 const NotificationDetails& details) { |
| 261 CHECK_EQ(content::NOTIFICATION_NAV_ENTRY_COMMITTED, type); | 261 CHECK_EQ(content::NOTIFICATION_NAV_ENTRY_COMMITTED, type); |
| 262 | 262 |
| 263 DictionaryValue* changed_properties = new DictionaryValue(); | 263 DictionaryValue* changed_properties = new DictionaryValue(); |
| 264 changed_properties->SetString( | 264 changed_properties->SetString( |
| 265 tabs_keys::kUrlKey, web_contents()->GetURL().spec()); | 265 tabs_keys::kUrlKey, web_contents()->GetURL().spec()); |
| 266 | 266 |
| 267 ListValue args; | 267 scoped_ptr<ListValue> args(new ListValue()); |
| 268 args.Append(Value::CreateIntegerValue( | 268 args->Append(Value::CreateIntegerValue( |
| 269 ExtensionTabUtil::GetTabId(web_contents()))); | 269 ExtensionTabUtil::GetTabId(web_contents()))); |
| 270 args.Append(changed_properties); | 270 args->Append(changed_properties); |
| 271 args.Append(CreateValue()); | 271 args->Append(CreateValue()); |
| 272 std::string json_args; | |
| 273 base::JSONWriter::Write(&args, &json_args); | |
| 274 | 272 |
| 275 // The event router only dispatches the event to renderers listening for the | 273 // The event router only dispatches the event to renderers listening for the |
| 276 // event. | 274 // event. |
| 277 Profile* profile = parent_tab_->tab_contents()->profile(); | 275 Profile* profile = parent_tab_->tab_contents()->profile(); |
| 278 profile->GetExtensionEventRouter()->DispatchEventToRenderers( | 276 profile->GetExtensionEventRouter()->DispatchEventToRenderers( |
| 279 events::kOnOffscreenTabUpdated, json_args, profile, GURL(), | 277 events::kOnOffscreenTabUpdated, args.Pass(), profile, GURL(), |
| 280 extensions::EventFilteringInfo()); | 278 extensions::EventFilteringInfo()); |
| 281 } | 279 } |
| 282 | 280 |
| 283 ParentTab::ParentTab() : tab_contents_(NULL) {} | 281 ParentTab::ParentTab() : tab_contents_(NULL) {} |
| 284 ParentTab::~ParentTab() {} | 282 ParentTab::~ParentTab() {} |
| 285 | 283 |
| 286 void ParentTab::Init(WebContents* web_contents, | 284 void ParentTab::Init(WebContents* web_contents, |
| 287 const std::string& extension_id) { | 285 const std::string& extension_id) { |
| 288 CHECK(web_contents); | 286 CHECK(web_contents); |
| 289 | 287 |
| (...skipping 542 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 832 // async case (when a "javascript": URL is sent to a tab). | 830 // async case (when a "javascript": URL is sent to a tab). |
| 833 if (!is_async) | 831 if (!is_async) |
| 834 SendResponse(true); | 832 SendResponse(true); |
| 835 | 833 |
| 836 return true; | 834 return true; |
| 837 } | 835 } |
| 838 | 836 |
| 839 void UpdateOffscreenTabFunction::PopulateResult() { | 837 void UpdateOffscreenTabFunction::PopulateResult() { |
| 840 // There's no result associated with this callback. | 838 // There's no result associated with this callback. |
| 841 } | 839 } |
| OLD | NEW |