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

Side by Side Diff: chrome/browser/extensions/user_script_master.cc

Issue 418413003: Remove deprecated ...EXTENSION_READY... from user_script_master.cc (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 4 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
« no previous file with comments | « chrome/browser/extensions/user_script_master.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/user_script_master.h" 5 #include "chrome/browser/extensions/user_script_master.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
11 #include "base/file_util.h" 11 #include "base/file_util.h"
12 #include "base/files/file_path.h" 12 #include "base/files/file_path.h"
13 #include "base/memory/shared_memory.h" 13 #include "base/memory/shared_memory.h"
14 #include "base/version.h" 14 #include "base/version.h"
15 #include "chrome/browser/chrome_notification_types.h" 15 #include "chrome/browser/chrome_notification_types.h"
16 #include "chrome/browser/extensions/extension_util.h" 16 #include "chrome/browser/extensions/extension_util.h"
17 #include "chrome/browser/profiles/profile.h" 17 #include "chrome/browser/profiles/profile.h"
18 #include "chrome/common/extensions/api/i18n/default_locale_handler.h" 18 #include "chrome/common/extensions/api/i18n/default_locale_handler.h"
19 #include "chrome/common/extensions/manifest_handlers/content_scripts_handler.h" 19 #include "chrome/common/extensions/manifest_handlers/content_scripts_handler.h"
20 #include "content/public/browser/notification_service.h" 20 #include "content/public/browser/notification_service.h"
21 #include "content/public/browser/render_process_host.h" 21 #include "content/public/browser/render_process_host.h"
22 #include "extensions/browser/component_extension_resource_manager.h" 22 #include "extensions/browser/component_extension_resource_manager.h"
23 #include "extensions/browser/content_verifier.h" 23 #include "extensions/browser/content_verifier.h"
24 #include "extensions/browser/extension_registry.h" 24 #include "extensions/browser/extension_registry.h"
25 #include "extensions/browser/extension_system.h" 25 #include "extensions/browser/extension_system.h"
26 #include "extensions/browser/extensions_browser_client.h" 26 #include "extensions/browser/extensions_browser_client.h"
27 #include "extensions/common/file_util.h" 27 #include "extensions/common/file_util.h"
28 #include "extensions/common/one_shot_event.h"
28 #include "extensions/common/message_bundle.h" 29 #include "extensions/common/message_bundle.h"
29 #include "ui/base/resource/resource_bundle.h" 30 #include "ui/base/resource/resource_bundle.h"
30 31
31 using content::BrowserThread; 32 using content::BrowserThread;
32 using extensions::ExtensionsBrowserClient; 33 using extensions::ExtensionsBrowserClient;
33 34
34 namespace extensions { 35 namespace extensions {
35 36
36 namespace { 37 namespace {
37 38
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after
343 } 344 }
344 345
345 UserScriptMaster::UserScriptMaster(Profile* profile) 346 UserScriptMaster::UserScriptMaster(Profile* profile)
346 : user_scripts_(new UserScriptList()), 347 : user_scripts_(new UserScriptList()),
347 extensions_service_ready_(false), 348 extensions_service_ready_(false),
348 pending_load_(false), 349 pending_load_(false),
349 profile_(profile), 350 profile_(profile),
350 extension_registry_observer_(this), 351 extension_registry_observer_(this),
351 weak_factory_(this) { 352 weak_factory_(this) {
352 extension_registry_observer_.Add(ExtensionRegistry::Get(profile_)); 353 extension_registry_observer_.Add(ExtensionRegistry::Get(profile_));
353 registrar_.Add(this,
354 extensions::NOTIFICATION_EXTENSIONS_READY_DEPRECATED,
355 content::Source<Profile>(profile_));
356 registrar_.Add(this, content::NOTIFICATION_RENDERER_PROCESS_CREATED, 354 registrar_.Add(this, content::NOTIFICATION_RENDERER_PROCESS_CREATED,
357 content::NotificationService::AllBrowserContextsAndSources()); 355 content::NotificationService::AllBrowserContextsAndSources());
356 ExtensionSystem::Get(profile)->ready().Post(
357 FROM_HERE,
358 base::Bind(&UserScriptMaster::OnExtensionsReady,
359 weak_factory_.GetWeakPtr()));
358 } 360 }
359 361
360 UserScriptMaster::~UserScriptMaster() { 362 UserScriptMaster::~UserScriptMaster() {
361 } 363 }
362 364
363 void UserScriptMaster::OnScriptsLoaded( 365 void UserScriptMaster::OnScriptsLoaded(
364 scoped_ptr<UserScriptList> user_scripts, 366 scoped_ptr<UserScriptList> user_scripts,
365 scoped_ptr<base::SharedMemory> shared_memory) { 367 scoped_ptr<base::SharedMemory> shared_memory) {
366 user_scripts_.reset(user_scripts.release()); 368 user_scripts_.reset(user_scripts.release());
367 if (pending_load_) { 369 if (pending_load_) {
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
430 changed_extensions_.insert(extension->id()); 432 changed_extensions_.insert(extension->id());
431 if (is_loading()) 433 if (is_loading())
432 pending_load_ = true; 434 pending_load_ = true;
433 else 435 else
434 StartLoad(); 436 StartLoad();
435 } 437 }
436 438
437 void UserScriptMaster::Observe(int type, 439 void UserScriptMaster::Observe(int type,
438 const content::NotificationSource& source, 440 const content::NotificationSource& source,
439 const content::NotificationDetails& details) { 441 const content::NotificationDetails& details) {
440 bool should_start_load = false; 442 DCHECK_EQ(type, content::NOTIFICATION_RENDERER_PROCESS_CREATED);
441 switch (type) { 443 content::RenderProcessHost* process =
442 case extensions::NOTIFICATION_EXTENSIONS_READY_DEPRECATED: 444 content::Source<content::RenderProcessHost>(source).ptr();
443 extensions_service_ready_ = true; 445 Profile* profile = Profile::FromBrowserContext(
444 should_start_load = true; 446 process->GetBrowserContext());
445 break; 447 if (!profile_->IsSameProfile(profile))
446 case content::NOTIFICATION_RENDERER_PROCESS_CREATED: { 448 return;
447 content::RenderProcessHost* process = 449 if (ScriptsReady()) {
448 content::Source<content::RenderProcessHost>(source).ptr(); 450 SendUpdate(process,
449 Profile* profile = Profile::FromBrowserContext( 451 GetSharedMemory(),
450 process->GetBrowserContext()); 452 std::set<std::string>()); // Include all extensions.
451 if (!profile_->IsSameProfile(profile))
452 return;
453 if (ScriptsReady()) {
454 SendUpdate(process,
455 GetSharedMemory(),
456 std::set<std::string>()); // Include all extensions.
457 }
458 break;
459 }
460 default:
461 DCHECK(false);
462 }
463
464 if (should_start_load) {
465 if (is_loading())
466 pending_load_ = true;
467 else
468 StartLoad();
469 } 453 }
470 } 454 }
471 455
456 void UserScriptMaster::OnExtensionsReady() {
457 extensions_service_ready_ = true;
458 if (is_loading())
459 pending_load_ = true;
460 else
461 StartLoad();
462 }
463
472 void UserScriptMaster::StartLoad() { 464 void UserScriptMaster::StartLoad() {
473 DCHECK_CURRENTLY_ON(BrowserThread::UI); 465 DCHECK_CURRENTLY_ON(BrowserThread::UI);
474 DCHECK(!is_loading()); 466 DCHECK(!is_loading());
475 467
476 // Remove any user scripts belonging to any extension that was updated or 468 // Remove any user scripts belonging to any extension that was updated or
477 // removed. 469 // removed.
478 for (UserScriptList::iterator iter = user_scripts_->begin(); 470 for (UserScriptList::iterator iter = user_scripts_->begin();
479 iter != user_scripts_->end();) { 471 iter != user_scripts_->end();) {
480 if (removed_extensions_.count(iter->extension_id()) > 0 || 472 if (removed_extensions_.count(iter->extension_id()) > 0 ||
481 added_extensions_.count(iter->extension_id()) > 0) { 473 added_extensions_.count(iter->extension_id()) > 0) {
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
544 if (!shared_memory->ShareToProcess(handle, &handle_for_process)) 536 if (!shared_memory->ShareToProcess(handle, &handle_for_process))
545 return; // This can legitimately fail if the renderer asserts at startup. 537 return; // This can legitimately fail if the renderer asserts at startup.
546 538
547 if (base::SharedMemory::IsHandleValid(handle_for_process)) { 539 if (base::SharedMemory::IsHandleValid(handle_for_process)) {
548 process->Send(new ExtensionMsg_UpdateUserScripts( 540 process->Send(new ExtensionMsg_UpdateUserScripts(
549 handle_for_process, "" /* owner */, changed_extensions)); 541 handle_for_process, "" /* owner */, changed_extensions));
550 } 542 }
551 } 543 }
552 544
553 } // namespace extensions 545 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/browser/extensions/user_script_master.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698