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

Side by Side Diff: chrome/browser/background/background_contents_service.cc

Issue 342003005: Show alert failure for reloading unpacked extensions with bad manifest (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed be_noisy, support interaction with multiple failures Created 6 years, 5 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
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/background/background_contents_service.h" 5 #include "chrome/browser/background/background_contents_service.h"
6 6
7 #include "apps/app_load_service.h" 7 #include "apps/app_load_service.h"
8 #include "base/basictypes.h" 8 #include "base/basictypes.h"
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
122 if (!service->GetAppBackgroundContents( 122 if (!service->GetAppBackgroundContents(
123 base::ASCIIToUTF16(copied_extension_id))) { 123 base::ASCIIToUTF16(copied_extension_id))) {
124 service->LoadBackgroundContentsForExtension(profile_, 124 service->LoadBackgroundContentsForExtension(profile_,
125 copied_extension_id); 125 copied_extension_id);
126 } 126 }
127 } else if (is_platform_app_) { 127 } else if (is_platform_app_) {
128 apps::AppLoadService::Get(profile_)-> 128 apps::AppLoadService::Get(profile_)->
129 RestartApplication(copied_extension_id); 129 RestartApplication(copied_extension_id);
130 } else { 130 } else {
131 extensions::ExtensionSystem::Get(profile_)->extension_service()-> 131 extensions::ExtensionSystem::Get(profile_)->extension_service()->
132 ReloadExtension(copied_extension_id); 132 ReloadExtension(copied_extension_id, true);
133 } 133 }
134 134
135 // Closing the crash notification balloon for the app/extension here should 135 // Closing the crash notification balloon for the app/extension here should
136 // be OK, but it causes a crash on Mac, see: http://crbug.com/78167 136 // be OK, but it causes a crash on Mac, see: http://crbug.com/78167
137 ScheduleCloseBalloon(copied_extension_id); 137 ScheduleCloseBalloon(copied_extension_id);
138 } 138 }
139 139
140 virtual bool HasClickedListener() OVERRIDE { return true; } 140 virtual bool HasClickedListener() OVERRIDE { return true; }
141 141
142 virtual std::string id() const OVERRIDE { 142 virtual std::string id() const OVERRIDE {
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
230 !extension_registry) { 230 !extension_registry) {
231 return; 231 return;
232 } 232 }
233 233
234 if (!extension_registry->GetExtensionById( 234 if (!extension_registry->GetExtensionById(
235 extension_id, extensions::ExtensionRegistry::TERMINATED)) { 235 extension_id, extensions::ExtensionRegistry::TERMINATED)) {
236 // Either the app/extension was uninstalled by policy or it has since 236 // Either the app/extension was uninstalled by policy or it has since
237 // been restarted successfully by someone else (the user). 237 // been restarted successfully by someone else (the user).
238 return; 238 return;
239 } 239 }
240 extension_system->extension_service()->ReloadExtension(extension_id); 240 extension_system->extension_service()->ReloadExtension(extension_id, true);
241 } 241 }
242 242
243 } // namespace 243 } // namespace
244 244
245 // Keys for the information we store about individual BackgroundContents in 245 // Keys for the information we store about individual BackgroundContents in
246 // prefs. There is one top-level DictionaryValue (stored at 246 // prefs. There is one top-level DictionaryValue (stored at
247 // prefs::kRegisteredBackgroundContents). Information about each 247 // prefs::kRegisteredBackgroundContents). Information about each
248 // BackgroundContents is stored under that top-level DictionaryValue, keyed 248 // BackgroundContents is stored under that top-level DictionaryValue, keyed
249 // by the parent application ID for easy lookup. 249 // by the parent application ID for easy lookup.
250 // 250 //
(...skipping 535 matching lines...) Expand 10 before | Expand all | Expand 10 after
786 bool user_gesture, 786 bool user_gesture,
787 bool* was_blocked) { 787 bool* was_blocked) {
788 Browser* browser = chrome::FindLastActiveWithProfile( 788 Browser* browser = chrome::FindLastActiveWithProfile(
789 Profile::FromBrowserContext(new_contents->GetBrowserContext()), 789 Profile::FromBrowserContext(new_contents->GetBrowserContext()),
790 chrome::GetActiveDesktop()); 790 chrome::GetActiveDesktop());
791 if (browser) { 791 if (browser) {
792 chrome::AddWebContents(browser, NULL, new_contents, disposition, 792 chrome::AddWebContents(browser, NULL, new_contents, disposition,
793 initial_pos, user_gesture, was_blocked); 793 initial_pos, user_gesture, was_blocked);
794 } 794 }
795 } 795 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698