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 |