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

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

Issue 7529011: Add a flag that lets the webstore show a different UI on app install. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: removed files added in separate CL (r95432) Created 9 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 | Annotate | Revision Log
OLDNEW
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 #include "chrome/browser/extensions/extension_webstore_private_api.h" 5 #include "chrome/browser/extensions/extension_webstore_private_api.h"
6 6
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/scoped_temp_dir.h" 10 #include "base/scoped_temp_dir.h"
(...skipping 19 matching lines...) Expand all
30 #include "content/browser/tab_contents/tab_contents.h" 30 #include "content/browser/tab_contents/tab_contents.h"
31 #include "content/common/notification_details.h" 31 #include "content/common/notification_details.h"
32 #include "content/common/notification_source.h" 32 #include "content/common/notification_source.h"
33 #include "grit/chromium_strings.h" 33 #include "grit/chromium_strings.h"
34 #include "grit/generated_resources.h" 34 #include "grit/generated_resources.h"
35 #include "net/base/escape.h" 35 #include "net/base/escape.h"
36 #include "ui/base/l10n/l10n_util.h" 36 #include "ui/base/l10n/l10n_util.h"
37 37
38 namespace { 38 namespace {
39 39
40 const char kAppInstallBubbleKey[] = "appInstallBubble";
40 const char kIconDataKey[] = "iconData"; 41 const char kIconDataKey[] = "iconData";
41 const char kIdKey[] = "id"; 42 const char kIdKey[] = "id";
42 const char kLocalizedNameKey[] = "localizedName"; 43 const char kLocalizedNameKey[] = "localizedName";
43 const char kLoginKey[] = "login"; 44 const char kLoginKey[] = "login";
44 const char kManifestKey[] = "manifest"; 45 const char kManifestKey[] = "manifest";
45 const char kTokenKey[] = "token"; 46 const char kTokenKey[] = "token";
46 47
47 const char kImageDecodeError[] = "Image decode failed"; 48 const char kImageDecodeError[] = "Image decode failed";
48 const char kInvalidIdError[] = "Invalid id"; 49 const char kInvalidIdError[] = "Invalid id";
49 const char kInvalidManifestError[] = "Invalid manifest"; 50 const char kInvalidManifestError[] = "Invalid manifest";
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after
286 scoped_ptr<DictionaryValue> parsed_manifest_; 287 scoped_ptr<DictionaryValue> parsed_manifest_;
287 288
288 // A details string for keeping track of any errors. 289 // A details string for keeping track of any errors.
289 std::string error_; 290 std::string error_;
290 291
291 // A code to distinguish between an error with the icon, and an error with the 292 // A code to distinguish between an error with the icon, and an error with the
292 // manifest. 293 // manifest.
293 BeginInstallWithManifestFunction::ResultCode parse_error_; 294 BeginInstallWithManifestFunction::ResultCode parse_error_;
294 }; 295 };
295 296
296 BeginInstallWithManifestFunction::BeginInstallWithManifestFunction() {} 297 BeginInstallWithManifestFunction::BeginInstallWithManifestFunction()
298 : use_app_installed_bubble_(false) {}
297 299
298 BeginInstallWithManifestFunction::~BeginInstallWithManifestFunction() {} 300 BeginInstallWithManifestFunction::~BeginInstallWithManifestFunction() {}
299 301
300 bool BeginInstallWithManifestFunction::RunImpl() { 302 bool BeginInstallWithManifestFunction::RunImpl() {
301 if (!IsWebStoreURL(profile_, source_url())) { 303 if (!IsWebStoreURL(profile_, source_url())) {
302 SetResult(PERMISSION_DENIED); 304 SetResult(PERMISSION_DENIED);
303 return false; 305 return false;
304 } 306 }
305 307
306 if (!user_gesture() && !ignore_user_gesture_for_tests) { 308 if (!user_gesture() && !ignore_user_gesture_for_tests) {
(...skipping 15 matching lines...) Expand all
322 324
323 EXTENSION_FUNCTION_VALIDATE(details->GetString(kManifestKey, &manifest_)); 325 EXTENSION_FUNCTION_VALIDATE(details->GetString(kManifestKey, &manifest_));
324 326
325 if (details->HasKey(kIconDataKey)) 327 if (details->HasKey(kIconDataKey))
326 EXTENSION_FUNCTION_VALIDATE(details->GetString(kIconDataKey, &icon_data_)); 328 EXTENSION_FUNCTION_VALIDATE(details->GetString(kIconDataKey, &icon_data_));
327 329
328 if (details->HasKey(kLocalizedNameKey)) 330 if (details->HasKey(kLocalizedNameKey))
329 EXTENSION_FUNCTION_VALIDATE(details->GetString(kLocalizedNameKey, 331 EXTENSION_FUNCTION_VALIDATE(details->GetString(kLocalizedNameKey,
330 &localized_name_)); 332 &localized_name_));
331 333
334 if (details->HasKey(kAppInstallBubbleKey))
335 EXTENSION_FUNCTION_VALIDATE(details->GetBoolean(
336 kAppInstallBubbleKey, &use_app_installed_bubble_));
337
332 scoped_refptr<SafeBeginInstallHelper> helper = 338 scoped_refptr<SafeBeginInstallHelper> helper =
333 new SafeBeginInstallHelper(this, icon_data_, manifest_); 339 new SafeBeginInstallHelper(this, icon_data_, manifest_);
334 // The helper will call us back via OnParseSucces or OnParseFailure. 340 // The helper will call us back via OnParseSucces or OnParseFailure.
335 helper->Start(); 341 helper->Start();
336 342
337 // Matched with a Release in OnSuccess/OnFailure. 343 // Matched with a Release in OnSuccess/OnFailure.
338 AddRef(); 344 AddRef();
339 345
340 // The response is sent asynchronously in OnSuccess/OnFailure. 346 // The response is sent asynchronously in OnSuccess/OnFailure.
341 return true; 347 return true;
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
444 SendResponse(false); 450 SendResponse(false);
445 451
446 // Matches the AddRef in RunImpl(). 452 // Matches the AddRef in RunImpl().
447 Release(); 453 Release();
448 } 454 }
449 455
450 void BeginInstallWithManifestFunction::InstallUIProceed() { 456 void BeginInstallWithManifestFunction::InstallUIProceed() {
451 CrxInstaller::WhitelistEntry* entry = new CrxInstaller::WhitelistEntry; 457 CrxInstaller::WhitelistEntry* entry = new CrxInstaller::WhitelistEntry;
452 entry->parsed_manifest.reset(parsed_manifest_.release()); 458 entry->parsed_manifest.reset(parsed_manifest_.release());
453 entry->localized_name = localized_name_; 459 entry->localized_name = localized_name_;
460 entry->use_app_installed_bubble = use_app_installed_bubble_;
454 CrxInstaller::SetWhitelistEntry(id_, entry); 461 CrxInstaller::SetWhitelistEntry(id_, entry);
455 SetResult(ERROR_NONE); 462 SetResult(ERROR_NONE);
456 SendResponse(true); 463 SendResponse(true);
457 464
458 // The Permissions_Install histogram is recorded from the ExtensionService 465 // The Permissions_Install histogram is recorded from the ExtensionService
459 // for all extension installs, so we only need to record the web store 466 // for all extension installs, so we only need to record the web store
460 // specific histogram here. 467 // specific histogram here.
461 ExtensionService::RecordPermissionMessagesHistogram( 468 ExtensionService::RecordPermissionMessagesHistogram(
462 dummy_extension_, "Extensions.Permissions_WebStoreInstall"); 469 dummy_extension_, "Extensions.Permissions_WebStoreInstall");
463 470
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after
669 } 676 }
670 677
671 DCHECK(waiting_for_token_); 678 DCHECK(waiting_for_token_);
672 679
673 result_.reset(CreateLoginResult(profile_->GetOriginalProfile())); 680 result_.reset(CreateLoginResult(profile_->GetOriginalProfile()));
674 SendResponse(true); 681 SendResponse(true);
675 682
676 // Matches the AddRef in RunImpl(). 683 // Matches the AddRef in RunImpl().
677 Release(); 684 Release();
678 } 685 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698